Hi, John and all,
is the recent patch for use of masked data in plotting lines (and contours) working?
What is the simplest example of using it?
I got this with recent CVS
python examples/masked_demo.py -numarray :
Traceback (most recent call last):
File "examples/masked_demo.py", line 19, in ?
lines = plot(x, y, 'r', x, ym1, 'g', x, ym2, 'bo')
File "/usr/lib/python2.3/site-packages/matplotlib/pylab.py", line 1930, in plot
ret = gca().plot(*args, **kwargs)
File "/usr/lib/python2.3/site-packages/matplotlib/axes.py", line 2411, in plot
self.add_line(line)
File "/usr/lib/python2.3/site-packages/matplotlib/axes.py", line 739, in add_line
self.update_datalim_numerix( xdata, ydata )
File "/usr/lib/python2.3/site-packages/matplotlib/axes.py", line 724, in update_datalim_numerix
self.dataLim.update_numerix(x, y, not self.has_data())
TypeError: Bbox::update_numerix expected numerix array
This is independent from using Numeric or numarray. Some grepp-ing of source shows that this
"TypeError" message comes from src/_transforms.cpp (lines 439, 445).
This short code fragment (lines 426-439 of src/_transforms.cpp) should make clear where the error occured:
Py::Object
Bbox::update_numerix(const Py::Tuple &args) {
//update the boox from the numerix arrays x and y
_VERBOSE("Bbox::update_numerix");
args.verify_length(3);
Py::Object xo = args[0];
Py::Object yo = args[1];
PyArrayObject *x = (PyArrayObject *) PyArray_ContiguousFromObject(xo.ptr(), PyArray_DOUBLE, 1,1);
if (x==NULL)
throw Py::TypeError("Bbox::update_numerix expected numerix array");
···
---------------------------------------------------------------------------------------------------
So, the trouble is with converting class MaskedArray to (Numeric) array. Sorry, I am not able
to help with the fix. I wonder, if someone can run the masked_demo.py successfully.
Mike