Revision: 6923
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6923&view=rev
Author: efiring
Date: 2009-02-21 19:06:58 +0000 (Sat, 21 Feb 2009)
Log Message:
-----------
Improve scatter argument handling
Modified Paths:
--------------
trunk/matplotlib/CHANGELOG
trunk/matplotlib/lib/matplotlib/axes.py
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG 2009-02-18 19:44:29 UTC (rev 6922)
+++ trunk/matplotlib/CHANGELOG 2009-02-21 19:06:58 UTC (rev 6923)
@@ -1,3 +1,6 @@
+2009-02-21 Improve scatter argument handling; add an early error
+ message, allow inputs to have more than one dimension. - EF
+
2009-02-16 Move plot_directive.py to the installed source tree. Add
support for inline code content - MGD
Modified: trunk/matplotlib/lib/matplotlib/axes.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/axes.py 2009-02-18 19:44:29 UTC (rev
6922)
+++ trunk/matplotlib/lib/matplotlib/axes.py 2009-02-21 19:06:58 UTC (rev
6923)
@@ -4949,8 +4949,8 @@
vmin=None, vmax=None, alpha=1.0, linewidths=None,
verts=None, **kwargs)
- Make a scatter plot of *x* versus *y*, where *x*, *y* are 1-D
- sequences of the same length, *N*.
+ Make a scatter plot of *x* versus *y*, where *x*, *y* are
+ converted to 1-D sequences which must be of the same length, *N*.
Keyword arguments:
@@ -5088,24 +5088,35 @@
x = self.convert_xunits(x)
y = self.convert_yunits(y)
+ # np.ma.ravel yields an ndarray, not a masked array,
+ # unless its argument is a masked array.
+ x = np.ma.ravel(x)
+ y = np.ma.ravel(y)
+ if x.size != y.size:
+ raise ValueError("x and y must be the same size")
+
+ s = np.ma.ravel(s) # This doesn't have to match x, y in size.
+
+ c_is_stringy = is_string_like(c) or cbook.is_sequence_of_strings(c)
+ if not c_is_stringy:
+ c = np.asanyarray(c)
+ if c.size == x.size:
+ c = np.ma.ravel(c)
+
x, y, s, c = cbook.delete_masked_points(x, y, s, c)
+ scales = s # Renamed for readability below.
- if is_string_like(c) or cbook.is_sequence_of_strings(c):
+ if c_is_stringy:
colors = mcolors.colorConverter.to_rgba_array(c, alpha)
else:
- sh = np.shape(c)
# The inherent ambiguity is resolved in favor of color
# mapping, not interpretation as rgb or rgba:
- if len(sh) == 1 and sh[0] == len(x):
+ if c.size == x.size:
colors = None # use cmap, norm after collection is created
else:
colors = mcolors.colorConverter.to_rgba_array(c, alpha)
- if not iterable(s):
- scales = (s,)
- else:
- scales = s
if faceted:
edgecolors = None
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins