Skip to main content

show matplotlib plots directly in your wezterm terminal

Project description

matplotlib-backend-wezterm

This python module allows you to use your wezterm 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-wezterm
  • 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-wezterm or by initializing matplotlib as follows.

import matplotlib
matplotlib.use('module://matplotlib-backend-wezterm')
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-wezterm'
$ 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.

You can use the environment variable MPLBACKEND_TRANSPARENT=1 to control the plot's background.

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 wezterm's imgcat 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-wezterm-2.1.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

File details

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

File metadata

File hashes

Hashes for matplotlib-backend-wezterm-2.1.2.tar.gz
Algorithm Hash digest
SHA256 b98d9ec9d0f04dd6c5da06cce4a74b9a5836ee42506914e95cbf528d19ac24f6
MD5 9a36924fdc6bc0bc55522b8adf3b34d6
BLAKE2b-256 268f1be8abe1f3db458e4dd91f040a74d5607fc636293e5d7fe0c30d15cc010c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matplotlib_backend_wezterm-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d723bdc674aeeccd380c0bf849ae8f77b6a12c68a35dcf66aae3bdeda5acf8e3
MD5 21d676a1da2608102fc58f4c23a29e32
BLAKE2b-256 676e1c7ccac30f74ed9c3bcec6ed8deaab216ec6291c65fc38f3097b3be591ed

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