diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index cf0fb8f31f04..12f9e336680d 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -4976,7 +4976,7 @@ def _pcolorargs(funcname, *args, **kw): allmatch = kw.pop("allmatch", False) if len(args) == 1: - C = args[0] + C = np.asanyarray(args[0]) numRows, numCols = C.shape if allmatch: X, Y = np.meshgrid(np.arange(numCols), np.arange(numRows)) @@ -4986,7 +4986,7 @@ def _pcolorargs(funcname, *args, **kw): return X, Y, C if len(args) == 3: - X, Y, C = args + X, Y, C = [np.asanyarray(a) for a in args] numRows, numCols = C.shape else: raise TypeError( diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index bc6168c62fd1..b6a4e79dc44f 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -738,6 +738,21 @@ def test_symlog2(): ax.set_ylim(-0.1, 0.1) +@cleanup +def test_pcolorargs(): + # Smoketest to catch issue found in gh:5205 + x = [-1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5] + y = [-1.5, -1.25, -1.0, -0.75, -0.5, -0.25, 0, + 0.25, 0.5, 0.75, 1.0, 1.25, 1.5] + X, Y = np.meshgrid(x, y) + Z = np.hypot(X, Y) + + plt.pcolor(Z) + plt.pcolor(list(Z)) + plt.pcolor(x, y, Z) + plt.pcolor(X, Y, list(Z)) + + @image_comparison(baseline_images=['pcolormesh'], remove_text=True) def test_pcolormesh(): n = 12