G
Grant Edwards
I downloaded examples/contour_demo.py, and it doesn't run.
I've searched both the user guide and the Wiki for "contour"
and got zero hits.
http://matplotlib.sourceforge.net/matplotlib.pylab.html#-contour
appears to be a good reference if you already know how to use
contour(), but I could glean zero clues from it on how to
actually use contour(). For example, it doesn't explain what
the actual formats/types of the parameters. It explains what
the parameters do, but not what they _are_
For example one parameter is specied as "an array". No clue as
to how many dimensions or what the axis are.
In another place it says "the X,Y parameters specify the (x,y)
coordinates of a surface". _How_ do they specify the surface?
Are they just equal length lists of x and y coordinates that
specify len(X) points. Or do they specify a len(X) x len(Y)
grid of points?
Since I can't find any documentation, I thought I'd just try a
few things.
I've got X,Y,Z values in an Nx3 array named "data" that looks
like this:
X Y Z
[[ 4.94958000e+01 3.65706000e+00 1.84600000e-01]
[ 4.94958000e+01 3.66447000e+00 1.82142000e-01]
[ 4.94958000e+01 5.04936000e+00 1.90937000e-01]
...,
[ 2.19844000e+03 9.74210000e+00 8.29735000e-01]
[ 2.19844000e+03 9.93863000e+00 9.82307000e-01]
[ 2.19844000e+03 1.03143000e+01 8.28844000e-01]]
If I just pass the array to contour() by doing
"pylab.contour(data)" I get this error:
Traceback (most recent call last):
File "./surfplot.py", line 11, in ?
pylab.contour(data)
File "/usr/lib/python2.4/site-packages/matplotlib/pylab.py", line 1659, in contour
ret = gca().contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line 1244, in contour
return self._contourHelper.contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 727, in contour
x, y, z, lev = self._contour_args(False, badmask, origin, extent, *args)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 544, in _contour_args
lev = self._autolev(z, 7, filled, badmask)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 471, in _autolev
lev = linspace(zmin, zmax, N+2)[1:-1]
File "/usr/lib/python2.4/site-packages/matplotlib/mlab.py", line 87, in linspace
dx = (xmax-xmin)/(N-1)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
I've no clue what that means. Well, I know what the TypeError
means _literally_, but I've no idea how I'm supposed to
interpret that particular error in regards to what I passed to
contour().
Attempting to use one of the other forms found on the above web
page I pass X,Y,Z vectors to contour() by doing
"pylab.contour(data[:,0],data[:,1],data[:,2])":
Traceback (most recent call last):
File "./surfplot.py", line 13, in ?
pylab.contour(data[:,0],data[:,1],data[:,2])
File "/usr/lib/python2.4/site-packages/matplotlib/pylab.py", line 1659, in contour
ret = gca().contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line 1244, in contour
return self._contourHelper.contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 727, in contour
x, y, z, lev = self._contour_args(False, badmask, origin, extent, *args)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 539, in _contour_args
x,y,z = self._check_xyz(args[:3])
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 515, in _check_xyz
raise TypeError("Input z must be a 2D array.")
TypeError: Input z must be a 2D array.
Which is almost as cryptic a result as my first attempt.
Why would my Z values be a 2D array?
I've searched both the user guide and the Wiki for "contour"
and got zero hits.
http://matplotlib.sourceforge.net/matplotlib.pylab.html#-contour
appears to be a good reference if you already know how to use
contour(), but I could glean zero clues from it on how to
actually use contour(). For example, it doesn't explain what
the actual formats/types of the parameters. It explains what
the parameters do, but not what they _are_
For example one parameter is specied as "an array". No clue as
to how many dimensions or what the axis are.
In another place it says "the X,Y parameters specify the (x,y)
coordinates of a surface". _How_ do they specify the surface?
Are they just equal length lists of x and y coordinates that
specify len(X) points. Or do they specify a len(X) x len(Y)
grid of points?
Since I can't find any documentation, I thought I'd just try a
few things.
I've got X,Y,Z values in an Nx3 array named "data" that looks
like this:
X Y Z
[[ 4.94958000e+01 3.65706000e+00 1.84600000e-01]
[ 4.94958000e+01 3.66447000e+00 1.82142000e-01]
[ 4.94958000e+01 5.04936000e+00 1.90937000e-01]
...,
[ 2.19844000e+03 9.74210000e+00 8.29735000e-01]
[ 2.19844000e+03 9.93863000e+00 9.82307000e-01]
[ 2.19844000e+03 1.03143000e+01 8.28844000e-01]]
If I just pass the array to contour() by doing
"pylab.contour(data)" I get this error:
Traceback (most recent call last):
File "./surfplot.py", line 11, in ?
pylab.contour(data)
File "/usr/lib/python2.4/site-packages/matplotlib/pylab.py", line 1659, in contour
ret = gca().contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line 1244, in contour
return self._contourHelper.contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 727, in contour
x, y, z, lev = self._contour_args(False, badmask, origin, extent, *args)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 544, in _contour_args
lev = self._autolev(z, 7, filled, badmask)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 471, in _autolev
lev = linspace(zmin, zmax, N+2)[1:-1]
File "/usr/lib/python2.4/site-packages/matplotlib/mlab.py", line 87, in linspace
dx = (xmax-xmin)/(N-1)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
I've no clue what that means. Well, I know what the TypeError
means _literally_, but I've no idea how I'm supposed to
interpret that particular error in regards to what I passed to
contour().
Attempting to use one of the other forms found on the above web
page I pass X,Y,Z vectors to contour() by doing
"pylab.contour(data[:,0],data[:,1],data[:,2])":
Traceback (most recent call last):
File "./surfplot.py", line 13, in ?
pylab.contour(data[:,0],data[:,1],data[:,2])
File "/usr/lib/python2.4/site-packages/matplotlib/pylab.py", line 1659, in contour
ret = gca().contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line 1244, in contour
return self._contourHelper.contour(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 727, in contour
x, y, z, lev = self._contour_args(False, badmask, origin, extent, *args)
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 539, in _contour_args
x,y,z = self._check_xyz(args[:3])
File "/usr/lib/python2.4/site-packages/matplotlib/contour.py", line 515, in _check_xyz
raise TypeError("Input z must be a 2D array.")
TypeError: Input z must be a 2D array.
Which is almost as cryptic a result as my first attempt.
Why would my Z values be a 2D array?