|
From: <ef...@us...> - 2010-06-01 00:31:48
|
Revision: 8355
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8355&view=rev
Author: efiring
Date: 2010-06-01 00:31:42 +0000 (Tue, 01 Jun 2010)
Log Message:
-----------
Colormap.__call__: override existing alpha only if alpha is specified.
Closes 2891982. The color for masked data is still handled differently;
this may need to be changed.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/colors.py
Modified: trunk/matplotlib/lib/matplotlib/colors.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/colors.py 2010-05-31 23:05:55 UTC (rev 8354)
+++ trunk/matplotlib/lib/matplotlib/colors.py 2010-06-01 00:31:42 UTC (rev 8355)
@@ -482,7 +482,7 @@
self._isinit = False
- def __call__(self, X, alpha=1.0, bytes=False):
+ def __call__(self, X, alpha=None, bytes=False):
"""
*X* is either a scalar or an array (of any dimension).
If scalar, a tuple of rgba values is returned, otherwise
@@ -490,18 +490,12 @@
are integers, then they are used as indices into the array.
If they are floating point, then they must be in the
interval (0.0, 1.0).
- Alpha must be a scalar.
+ Alpha must be a scalar between 0 and 1, or None.
If bytes is False, the rgba values will be floats on a
0-1 scale; if True, they will be uint8, 0-255.
"""
if not self._isinit: self._init()
- alpha = min(alpha, 1.0) # alpha must be between 0 and 1
- alpha = max(alpha, 0.0)
- self._lut[:-1,-1] = alpha # Don't assign global alpha to i_bad;
- # it would defeat the purpose of the
- # default behavior, which is to not
- # show anything where data are missing.
mask_bad = None
if not cbook.iterable(X):
vtype = 'scalar'
@@ -532,7 +526,17 @@
if bytes:
lut = (self._lut * 255).astype(np.uint8)
else:
- lut = self._lut
+ lut = self._lut.copy()
+
+ if alpha is not None:
+ alpha = min(alpha, 1.0) # alpha must be between 0 and 1
+ alpha = max(alpha, 0.0)
+ lut[:-1,-1] = alpha # Don't assign global alpha to i_bad;
+ # it would defeat the purpose of the
+ # default behavior, which is to not
+ # show anything where data are missing.
+
+
rgba = np.empty(shape=xa.shape+(4,), dtype=lut.dtype)
lut.take(xa, axis=0, mode='clip', out=rgba)
# twice as fast as lut[xa];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|