On Wed, Apr 29, 2009 at 11:03 AM, John Hunter <jdh2...@gmail.com> wrote:
>
>> ...but I'd like more feedback from the author or users of fill_between
>> before committing that change. (That, and Eric Firing can probably find
>> a much more efficient way to do the masked array manipulation... ;)
>
>
> I'm working on a patch for this now....but I would also like Eric to take a
> look when I am done since I am a masked array dummy
Here's the diff I just committed::
Index: lib/matplotlib/axes.py
===================================================================
--- lib/matplotlib/axes.py (revision 7069)
+++ lib/matplotlib/axes.py (working copy)
@@ -5832,6 +5832,26 @@
self._process_unit_info(xdata=x, ydata=y1, kwargs=kwargs)
self._process_unit_info(ydata=y2)
+ if where is None:
+ where = np.ones(len(x), np.bool)
+ else:
+ where = np.asarray(where)
+
+ maskedx = isinstance(x, np.ma.MaskedArray)
+ maskedy1 = isinstance(y1, np.ma.MaskedArray)
+ maskedy2 = isinstance(y2, np.ma.MaskedArray)
+
+ if (maskedx or maskedy1 or maskedy2):
+ if maskedx:
+ where = where & (~x.mask)
+
+ if maskedy1:
+ where = where & (~y1.mask)
+
+ if maskedy2:
+ where = where & (~y2.mask)
+
+
# Convert the arrays so we can work with them
x = np.asarray(self.convert_xunits(x))
y1 = np.asarray(self.convert_yunits(y1))
@@ -5843,10 +5863,7 @@
if not cbook.iterable(y2):
y2 = np.ones_like(x)*y2
- if where is None:
- where = np.ones(len(x), np.bool)
- where = np.asarray(where)
assert( (len(x)==len(y1)) and (len(x)==len(y2)) and
len(x)==len(where))
polys = []
------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations
Conference from O'Reilly Media. Velocity features a full day of
expert-led, hands-on workshops and two days of sessions from industry
leaders in dedicated Performance & Operations tracks. Use code vel09scf
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users