[SciPy-user] Simple plot problem
James A. Bednar
Tue Feb 17 04:51:19 CST 2009
| Date: Tue, 17 Feb 2009 01:23:20 -0800
| From: "Guilherme P. de Freitas" <firstname.lastname@example.org>
| Subject: [SciPy-user] Simple plot problem
| To: SciPy Users List <email@example.com>
| Message-ID: <firstname.lastname@example.org>
| Content-Type: text/plain; charset=ISO-8859-1
| Hi everybody,
| I'm running Python 2.5.2 with EPD with Py2.5 4.0.30002
| I need to plot three simpe things, in 3d, domain is x, y in [0,3] x
| 1. the graph of the function f(x,y) = x**(0.3) * y**(0.7)
| 2. the parametric straight line (x, 2 - 2*x, 0) for x in [0,1]
| 3. the parametric curve (x, 2 - 2*x, f(x, 2 - 2*x))
| - I thought of matplotlib, mlab (from mayavi2), SymPy and PyX.
| - Apparently matplotlib cannot do 3d plots. Is this correct? My
| version of matplotlib is 0.98.
| - I could not plot 2 (the parametric line) with mlab. I am not sure
| I understood the syntax of mlab.plot3d, and the examples
| everywhere are too complicated for me to understand how it works.
| I tried "mlab.plot3d([0, 1], [2, 0], [0, 0])" and it gave me a
| short line, very small, that was in the interior of the positive
| quadrant of the xy plane. Imagine the line I wanted and shrink it
| 80% to its midpoint, that's what I got.
| - I tried SymPy. I could plot everything easily. However, I could
| not change thickness and color of curves. Didn't find anything in
| the documentation. Any ideas? By the way, setting colors of
| objects in both SymPy and Mlab seems to complicated for simple
| use. How do I make the object red, for example?
| - PyX apparently has no 3d plotting capabilities. Is this correct?
| I could not find an example of a simple plot of a function f : R^2
| -> R in any python tool, with explanations of how to change
| thickness, color, style and labels of plots. Ideally, labels should
| be rendered with TeX. There were all sorts of complicated examples,
| but nothing simple like what I needed. And no example simple enough
| that I could really understand what was going on for all the
| commands I needed. I will gladly write a short tutorial about it if
| there is a way to do this and I find out the solution.
| Now I will try GnuPlot, and if that does not work, Maple. But I'd
| like to do it with Python. Any help is appreciated.
I use matplotlib-0.91.4, and I can do nice 3D wireframe plots using
the code below. However, I don't think that works in newer versions,
so I have stopped upgrading. The matplotlib docs tell how to change
from numpy import outer,arange,cos,sin,ones,zeros,array
from matplotlib import axes3d
fig = pylab.figure()
ax = axes3d.Axes3D(fig)
# Construct matrices for r and c values
rn,cn = mat.shape
c = outer(ones(rn),arange(cn*1.0))
r = outer(arange(rn*1.0),ones(cn))
if title: windowtitle(title)
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
More information about the SciPy-user