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)