From f37729d69a2fd8c5c06e6e96191568620cdacf38 Mon Sep 17 00:00:00 2001 From: pelson <philipelson@hotmail.com> Date: Sat, 16 Jun 2012 14:46:52 +0100 Subject: [PATCH 1/2] Full support for string cmaps. --- lib/matplotlib/cm.py | 4 ++-- lib/matplotlib/contour.py | 1 - lib/matplotlib/streamplot.py | 6 ++++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/cm.py b/lib/matplotlib/cm.py index 34d7354041e4..f7cc6eaac845 100644 --- a/lib/matplotlib/cm.py +++ b/lib/matplotlib/cm.py @@ -151,8 +151,8 @@ def get_cmap(name=None, lut=None): return cmap_d[name] elif name in datad: return _generate_cmap(name, lut) - else: - raise ValueError("Colormap %s is not recognized" % name) + + raise ValueError("Colormap %s is not recognized" % name) class ScalarMappable: """ diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index 3b3c25dc97a0..59f0e0aceeb1 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -766,7 +766,6 @@ def __init__(self, ax, *args, **kwargs): if self.origin is not None: assert(self.origin in ['lower', 'upper', 'image']) if self.extent is not None: assert(len(self.extent) == 4) - if cmap is not None: assert(isinstance(cmap, colors.Colormap)) if self.colors is not None and cmap is not None: raise ValueError('Either colors or cmap must be None') if self.origin == 'image': self.origin = mpl.rcParams['image.origin'] diff --git a/lib/matplotlib/streamplot.py b/lib/matplotlib/streamplot.py index 92a43b430539..5f87c855dea1 100644 --- a/lib/matplotlib/streamplot.py +++ b/lib/matplotlib/streamplot.py @@ -5,7 +5,7 @@ import numpy as np import matplotlib import matplotlib.patches as patches - +from matplotlib.cm import get_cmap __all__ = ['streamplot'] @@ -105,7 +105,9 @@ def streamplot(axes, x, y, u, v, density=1, linewidth=None, color=None, if norm is None: norm = matplotlib.colors.normalize(color.min(), color.max()) if cmap is None: - cmap = matplotlib.cm.get_cmap(matplotlib.rcParams['image.cmap']) + cmap = get_cmap(matplotlib.rcParams['image.cmap']) + else: + cmap = get_cmap(cmap) streamlines = [] for t in trajectories: From 715fb437705a8abe6cead1f6188d2e857f835a34 Mon Sep 17 00:00:00 2001 From: pelson <philipelson@hotmail.com> Date: Sat, 16 Jun 2012 20:05:14 +0100 Subject: [PATCH 2/2] Stylistic change. --- lib/matplotlib/streamplot.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/streamplot.py b/lib/matplotlib/streamplot.py index 5f87c855dea1..70d89f672a86 100644 --- a/lib/matplotlib/streamplot.py +++ b/lib/matplotlib/streamplot.py @@ -4,8 +4,10 @@ """ import numpy as np import matplotlib +import matplotlib.cm as cm +import matplotlib.colors as mcolors +import matplotlib.collections as mcollections import matplotlib.patches as patches -from matplotlib.cm import get_cmap __all__ = ['streamplot'] @@ -103,11 +105,11 @@ def streamplot(axes, x, y, u, v, density=1, linewidth=None, color=None, if use_multicolor_lines: if norm is None: - norm = matplotlib.colors.normalize(color.min(), color.max()) + norm = mcolors.normalize(color.min(), color.max()) if cmap is None: - cmap = get_cmap(matplotlib.rcParams['image.cmap']) + cmap = cm.get_cmap(matplotlib.rcParams['image.cmap']) else: - cmap = get_cmap(cmap) + cmap = cm.get_cmap(cmap) streamlines = [] for t in trajectories: @@ -139,7 +141,7 @@ def streamplot(axes, x, y, u, v, density=1, linewidth=None, color=None, p = patches.FancyArrowPatch(arrow_tail, arrow_head, **arrow_kw) axes.add_patch(p) - lc = matplotlib.collections.LineCollection(streamlines, **line_kw) + lc = mcollections.LineCollection(streamlines, **line_kw) if use_multicolor_lines: lc.set_array(np.asarray(line_colors)) lc.set_cmap(cmap)