Skip to main content

show matplotlib plots directly in your kitty terminal

Project description

matplotlib-backend-kitty

This python module allows you to use your kitty terminal to show the plots generated by python's matplotlib.

For other terminals, the similar notcurses backend may also be of interest.

To install this one, do one of the following

  • $ pip install --user matplotlib-backend-kitty
  • clone this repo into your python's site-packages directory
  • clone this repo and add the parent directory to sys.path or $PYTHONPATH

Then, configure matplotlib to use the module by either setting the environment variable MPLBACKEND to module://matplotlib-backend-kitty or by initializing matplotlib as follows.

import matplotlib
matplotlib.use('module://matplotlib-backend-kitty')
import matplotlib.pyplot as plt

If you've installed this module correctly, you can now use the following sample code to draw a plot in your terminal.

$ export MPLBACKEND='module://matplotlib-backend-kitty'
$ python -i
>>> n = 10000
>>> df = pd.DataFrame({'x': np.random.randn(n),
                       'y': np.random.randn(n)})
>>> df.plot.hexbin(x='x', y='y', gridsize=20)
<plot is shown>

If you set your matplotlib to interactive mode via matplotlib.pyplot.ion() or by running python as python -i, non-empty figures are drawn on construction where possible. This allows you to use pandas' plot() calls directly, without calling plt.show(), and still enables you to manually construct and plt.show().

If your matplotlib is in non-interactive mode, you can construct your figures as usual, and then call plt.show() to render them to your terminal. This works from both a repl and when running scripts.

Figures are resized to the size of your terminal by default. If you'd rather control the sizing of figures manually, set the MPLBACKEND_KITTY_SIZING environment variable to manual.

Internally, this backend is somewhat based on matplotlib's IPython support: it's a hybrid of image and GUI backend types. It works by using matplotlib's Agg backend to render the plot, and then calls kitty's icat to place the rendered image on your terminal. This means that plotting works as expected, but the image drawn to your terminal isn't interactive and animations aren't supported.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matplotlib-backend-kitty-2.1.2.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

matplotlib_backend_kitty-2.1.2-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file matplotlib-backend-kitty-2.1.2.tar.gz.

File metadata

File hashes

Hashes for matplotlib-backend-kitty-2.1.2.tar.gz
Algorithm Hash digest
SHA256 ab7d17ef00186c680a989af8c9be9fc8900a505f5c107dc7d9abc67b1a57f150
MD5 be088930e4df784877d17a7fd0fd4728
BLAKE2b-256 d5744fa3a53439fbc50eaf7fb5056cc68b98f31f67aeaff602236dd96652779e

See more details on using hashes here.

File details

Details for the file matplotlib_backend_kitty-2.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for matplotlib_backend_kitty-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6f11f1b734d64df3712539833072be6dc66e4112320974bf614d2dff5dc2e8b5
MD5 cd4bfe1fb58d27ba407403961d191bd6
BLAKE2b-256 1f90c1770c3443ae8ba4104db158df2d6a964394553b17bc195fdccd648685ce

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page