From 0cd8ab437cd3da711c39f6e4ccc90f90dcf6160f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 10:32:14 +1300 Subject: [PATCH 1/5] MPL 3.7.0 doesn't give a user warning --- src/sage/plot/contour_plot.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py index c0cab456686..4accb309580 100644 --- a/src/sage/plot/contour_plot.py +++ b/src/sage/plot/contour_plot.py @@ -848,9 +848,7 @@ def f(x,y): return cos(x) + sin(y) sage: contour_plot(lambda x,y: 0, (-1,1), (-1,1), ....: contours=[0], fill=False, cmap=['blue']) - ... - UserWarning: No contour levels were found within the data range. - Graphics object consisting of 1 graphics primitive + ...Graphics object consisting of 1 graphics primitive .. PLOT:: @@ -874,8 +872,7 @@ def f(x,y): return cos(x) + sin(y) Check that :trac:`18074` is fixed:: sage: contour_plot(0, (0,1), (0,1)) - ... UserWarning: No contour levels were found within the data range. - Graphics object consisting of 1 graphics primitive + ...Graphics object consisting of 1 graphics primitive Domain points in :trac:`11648` with complex output are now skipped:: From fd4ae7706de075c15282c4edea5f9f2ca0dec2c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 10:39:31 +1300 Subject: [PATCH 2/5] Change in axis labelling: no more subplots --- src/sage/plot/graphics.py | 2 +- src/sage/plot/multigraphics.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py index 64ea1a7e10f..cdc99ced263 100644 --- a/src/sage/plot/graphics.py +++ b/src/sage/plot/graphics.py @@ -2341,7 +2341,7 @@ def _matplotlib_tick_formatter(self, subplot, base=(10, 10), sage: subplot = Figure().add_subplot(111) sage: p._objects[0]._render_on_subplot(subplot) sage: p._matplotlib_tick_formatter(subplot, **d) - (, + (, , , , diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py index 99c817f03a6..ae85183dc93 100644 --- a/src/sage/plot/multigraphics.py +++ b/src/sage/plot/multigraphics.py @@ -1207,7 +1207,7 @@ def _add_subplot(self, figure, index, **options): sage: fig = Figure() sage: ax1 = G._add_subplot(fig, 0) sage: type(ax1) - + sage: ax2 = G._add_subplot(fig, 1) sage: fig.get_axes() == [ax1, ax2] True From 876a62a7517f2ede6005ec6a4f8617d2ed5bb8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 11:09:03 +1300 Subject: [PATCH 3/5] Move from cm.get_cmap to colormaps.get_cmap. The former is deprecated and will be removed. --- src/sage/plot/complex_plot.pyx | 6 +++--- src/sage/plot/plot3d/plot_field3d.py | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx index 6f0aeab87ae..494f083e98b 100644 --- a/src/sage/plot/complex_plot.pyx +++ b/src/sage/plot/complex_plot.pyx @@ -561,7 +561,7 @@ def complex_to_cmap_rgb(z_values, cmap='turbo', contoured=False, tiled=False, import matplotlib as mpl if isinstance(cmap, str): - cmap = mpl.cm.get_cmap(cmap) + cmap = mpl.colormaps.get_cmap(cmap) if contour_base is None: if contour_type == "linear": @@ -1204,11 +1204,11 @@ def complex_plot(f, x_range, y_range, contoured=False, tiled=False, cmap=None, domain = np.linspace(0, 1, 256) shifted_domain = np.roll(domain, 128) default_cmap = mpl.colors.LinearSegmentedColormap.from_list( - "sage_default", mpl.cm.get_cmap('hsv')(shifted_domain) + "sage_default", mpl.colormaps.get_cmap('hsv')(shifted_domain) ) cmap = default_cmap else: - cmap = mpl.cm.get_cmap(cmap) + cmap = mpl.colormaps.get_cmap(cmap) rgbs = complex_to_cmap_rgb( z_values, cmap=cmap, contoured=contoured, tiled=tiled, contour_type=contour_type, contour_base=contour_base, diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index bdf39391d3e..1e6ed982f6f 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -126,8 +126,7 @@ def plot_vector_field3d(functions, xrange, yrange, zrange, vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points] try: - from matplotlib.cm import get_cmap - cm = get_cmap(colors) + cm = matplotlib.colormaps.get_cmap(color) except (TypeError, ValueError): cm = None if cm is None: From c66682fc0d7e234b5ad33ae11098611500394551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 14:12:47 +1300 Subject: [PATCH 4/5] correct mistakes in plot_field3d.py --- src/sage/plot/plot3d/plot_field3d.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index 1e6ed982f6f..a9ff1360b91 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -126,7 +126,8 @@ def plot_vector_field3d(functions, xrange, yrange, zrange, vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points] try: - cm = matplotlib.colormaps.get_cmap(color) + import matplotlib + cm = matplotlib.colormaps.get_cmap(colors) except (TypeError, ValueError): cm = None if cm is None: From 5ad0848c0cd4a6f996846d676fbc6b80642b9b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Fri, 24 Feb 2023 11:04:54 +1300 Subject: [PATCH 5/5] Adopt more idiomatic form suggested in review. --- src/sage/plot/complex_plot.pyx | 6 +++--- src/sage/plot/plot3d/plot_field3d.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx index 494f083e98b..4d02ae57cf2 100644 --- a/src/sage/plot/complex_plot.pyx +++ b/src/sage/plot/complex_plot.pyx @@ -561,7 +561,7 @@ def complex_to_cmap_rgb(z_values, cmap='turbo', contoured=False, tiled=False, import matplotlib as mpl if isinstance(cmap, str): - cmap = mpl.colormaps.get_cmap(cmap) + cmap = mpl.colormaps[cmap] if contour_base is None: if contour_type == "linear": @@ -1204,11 +1204,11 @@ def complex_plot(f, x_range, y_range, contoured=False, tiled=False, cmap=None, domain = np.linspace(0, 1, 256) shifted_domain = np.roll(domain, 128) default_cmap = mpl.colors.LinearSegmentedColormap.from_list( - "sage_default", mpl.colormaps.get_cmap('hsv')(shifted_domain) + "sage_default", mpl.colormaps['hsv'](shifted_domain) ) cmap = default_cmap else: - cmap = mpl.colormaps.get_cmap(cmap) + cmap = mpl.colormaps[cmap] rgbs = complex_to_cmap_rgb( z_values, cmap=cmap, contoured=contoured, tiled=tiled, contour_type=contour_type, contour_base=contour_base, diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index a9ff1360b91..fe10e27f58f 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -126,9 +126,9 @@ def plot_vector_field3d(functions, xrange, yrange, zrange, vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points] try: - import matplotlib - cm = matplotlib.colormaps.get_cmap(colors) - except (TypeError, ValueError): + import matplotlib as mpl + cm = mpl.colormaps[colors] + except (TypeError, KeyError): cm = None if cm is None: if isinstance(colors, (list, tuple)):