An awesome iTerm2 backend for Matplotlib, so you can plot directly in your terminal.
Project description
An awesome iTerm2 backend for Matplotlib, so you can plot directly in your terminal.
The above is achieved with zero modifications to your Python script. For example, the above plots are generated with the following code:
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
plt.rcParams["font.size"] = 10
plt.figure(figsize=(8,3))
ax = plt.subplot(121)
x = np.arange(0,10,0.001)
ax.plot(x, np.sin(np.sinc(x)), 'r', lw=2)
ax.set_title('Nice wiggle')
ax = plt.subplot(122)
plt.tick_params(axis='both', left='off', top='off', right='off', bottom='off', labelleft='off', labeltop='off', labelright='off', labelbottom='off')
G = nx.random_geometric_graph(200, 0.125)
pos=nx.spring_layout(G)
nx.draw_networkx_edges(G, pos, alpha=0.2)
nx.draw_networkx_nodes(G, pos, node_color='r', node_size=12)
ax.set_title('Random graph')
plt.show()
Note: you need to run plt.show() to display the figure.
Reverse video
If you use a dark background in your terminal, you can enable “reverse video” mode by adding this to your .profile:
export ITERMPLOT=rv
TMUX support
itermplot tries to auto-detect TMUX and behave in a sane way. Vertical split panes do not work well due to a limitation with iTerm2. Luckily, horizontals do though.
Animation support
itermplot supports animation created by matplotlib animation module.
You’ll need to install ImageMagick and have it on the path to use the animation support. The simpliest way to see if ImageMagick is installed and valid is to run:
$ convert -version
Version: ImageMagick 7.0.4-4 Q16 x86_64 2017-01-14 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules
Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib
To enable animation support, you need to specifying the desired number of frames in the output animation. For example, specify it before your script with:
$ ITERMPLOT_FRAMES=30 python script.py
You can also save the resulting gif file by using ITERMPLOT_OUTFILE environment variable:
$ ITERMPLOT_FRAMES=30 ITERMPLOT_OUTFILE=out.gif python script.py
Currently animation does not support reverse video with ITERMPLOT=rv.
Configure lines
You can configure the number of lines used with the ITERMPLOT_LINES environment variable. For example:
ITERMPLOT_LINES=5 python3 simple.py
Python 2 and Python 3 support
Now supports Python 2, even if this makes me want to cry 😭
Installation
Using pip
Install using pip using the command:
pip3 install itermplot
itermplot is enabled by setting MPLBACKEND in your environment. If you use bash, then this can be accomplished using the command:
export MPLBACKEND="module://itermplot"
Note: you can add the export line above to your .profile file so that itermplot is always enabled in your terminal.
Testing
To test your installation you can do the following in your iTerm2 console:
$ echo $MPLBACKEND module://itermplot $ python3 Python 3.5.2 (default, Oct 24 2016, 09:14:06) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib.pyplot as plt >>> plt.plot([1,2,3]) [<matplotlib.lines.Line2D object at 0x1041f2e48>] >>> plt.show()
You should see a plot!
Uninstall
You can disable this backend by unsetting the MPLBACKEND environment variable.
$ unset MPLBACKEND $ echo $MPLBACKEND $ python3 Python 3.5.2 (default, Oct 24 2016, 09:14:06) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib.pyplot as plt >>> plt.plot([1,2,3]) [<matplotlib.lines.Line2D object at 0x1106bdcc0>] >>> plt.show()
To remove the package completely, run:
pip3 uninstall itermplot
Bugs
This backend is very alpha, so if you have a problem please raise an Issue on GitHub and I will try to fix it.
I also accept (and appreciate!) good patches / pull request. Thanks to garrywu, brenshanny, hbredin, zevlg for their patches so far.
Other cool things
I encourage you to check-out some of my other little projects. Lots more coming as I slowly release them…
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file itermplot-0.331.tar.gz
.
File metadata
- Download URL: itermplot-0.331.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f4099872a78b3a13d899c7a1d0e04ea9693af06b6f23f5a8c279dc646833141 |
|
MD5 | 9f387875eaa428b608cd0813884b6008 |
|
BLAKE2b-256 | 0a9ce861591c29580f92e24f2be033ae51e882abecb480324ddd982e056d7ab4 |