I just installed matplotlib in Ubuntu 9.10 using the synaptic package system.
However, when I try the following simple example
from pylab import plot; plot([1,2,3],[1,2,3]) [<matplotlib.lines.Line2D object at 0x9aa78ec>]
I get no plot window. Any ideas on how to get the plot window to show?
You can type
import pylab pylab.show()
or better, use
Since the use of
pylab is not recommended anymore, the solution would nowadays be
import matplotlib.pyplot as plt plt.plot([1,2,3]) plt.show()
pylab.show() works but blocks (you need to close the window).
A much more convenient solution is to do
pylab.ion() (interactive mode on) when you start: all (the pylab equivalents of)
pyplot.* commands display their plot immediately. More information on the interactive mode can be found on the official web site.
I also second using the even more convenient
ipython -pylab (
--pylab, in newer versions), which allows you to skip the
from … import … part (
%pylab works, too, in newer IPython versions).
import matplotlib matplotlib.use('TkAgg')
BEFORE import pylab
The code snippet below works on both Eclipse and the Python shell:
import numpy as np import matplotlib.pyplot as plt # Come up with x and y x = np.arange(0, 5, 0.1) y = np.sin(x) # Just print x and y for fun print x print y # Plot the x and y and you are supposed to see a sine curve plt.plot(x, y) # Without the line below, the figure won't show plt.show()
Any errors show up? This might an issue of not having set the backend. You can set it from the Python interpreter or from a config file (
.matplotlib/matplotlibrc) in you home directory.
To set the backend in code you can do
import matplotlib matplotlib.use('Agg')
where ‘Agg’ is the name of the backend. Which backends are present depend on your installation and OS.
Modern IPython uses the “
--matplotlib” argument with an optional backend parameter. It defaults to “auto”, which is usually good enough on Mac and Windows. I haven’t tested it on Ubuntu or any other Linux distribution, but I would expect it to work.
If you encounter an issue in which
pylab.show() freezes the IPython window (this may be Mac OS X specific; not sure), you can cmd-c in the IPython window, switch to the plot window, and it will break out.
Apparently, future calls to
pylab.show() will not freeze the IPython window, only the first call. Unfortunately, I’ve found that the behavior of the plot window / interactions with show() changes every time I reinstall matplotlib, so this solution may not always hold.
If you are starting IPython with the
--pylab option, you shouldn’t need to call
draw(). Try this: