Hi,

Is there a standard way to compute first and then plot something  
later?  For example, I would like to generate a fine contour plot,  
then use it as a background later.

x = np.linspace(-1,1,1000)
X,Y = np.meshgrid(x,x)
Z = ((X*X + Y*Y) - 0.5)**2 + Y**2
contours = plt.contour(X,Y,Z,100)  # Takes a while...
del x, X, Y, Z

I would like to the later plot the contours quickly.  What is the  
"proper" way to do this in general? I can do something like the  
following, but it seems like a hack (and may be missing important  
connections: for example, I initially forgot to set the transform  
which meant that the data was disconnected from the axis scale...)

f = plt.figure()
ax = plt.gca()
for collection in contours.collections:
    collection.set_transform(ax.transData)
    ax.add_collection(collection)

ax.autoscale_view()
plt.draw()

Have I forgotten anything here? I would have expected that, for any  
plotting command, the return value could be passed to an axis command,  
something like

f = plt.figure()
ax = plt.gca()
ax.add(contours)

or maybe even
ax.contour(contours)

though a general function to take the object returned by a plot  
command and plot it on the current axis efficiently would be best.

I can't find this functionality or a description about how to do  
this.  Any suggestions?

Likewise, is there an easy way to "duplicate" a figure (including the  
axes properties etc.) so one can produce two similar figures with  
slightly modified parameters?

Thanks,
Michael.


------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to