[IPython-User] [IPython-user] matplotlib under ipython
Jon Olav Vik
jonovik@gmail....
Fri Jun 18 14:14:37 CDT 2010
Neil Best <nbest <at> ci.uchicago.edu> writes:
> In [1]: x = randn(10000)
>
> In [2]: hist(x, 100)
> Out[2]:
> (array([ 4, 3, 1, 0, 0, 1, 3, 3, 6, 12, 9, 10, 11,
This plots the histogram in a new figure, since there doesn't exist one yet.
When I run this on Windows XP with the --pylab switch, the figure is shown on
screen right away. Note that pyplot.hist (which pylab imports) differs from
np.histogram; the latter returns only the bin counts and leaves you to do the
plotting, whereas the former has plotting as its main purpose.
> In [3]: figure()
> Out[3]: <matplotlib.figure.Figure object at 0x2d145f0>
This creates a new, blank figure. The previous one no longer has any references
to it, I'm afraid.
> In [4]: plot()
> Out[4]: []
This adds nothing to the plot...
> In [5]: savefig('test.png') #produces a file with axes but no chart
...and this saves your figure with no data plotted.
> If I start ipython without the pylab profile (sh instead), import what I
> need manually setting the backend to 'macosx', then a window does appear.
> Can anyone tell me what is going on here and how it is supposed to work /
> what makes the most sense for interactive work?
Interactive work with graphical desktop: you don't need to explicitly call
figure() except when you want a new figure. clf() will clear the current figure
if you need to. Noninteractively, or if graphics is not available, I run
IPython without --pylab and do:
import matplotlib as mpl
mpl.use("agg")
from pylab import * # or just what you need, e.g. figure, subplot, savefig
...
savefig(...)
> Along those lines is there
> a convenient way to get pylab and sh profile behaviors at the same time?
I'm not sure what you mean here.
Hope this helps,
Jon Olav
More information about the IPython-User
mailing list