diff --git a/mapclassify/tests/baseline_images/test_legendgram/legendgram_cmap.png b/mapclassify/tests/baseline_images/test_legendgram/legendgram_cmap.png index 603b9e9..de828d7 100644 Binary files a/mapclassify/tests/baseline_images/test_legendgram/legendgram_cmap.png and b/mapclassify/tests/baseline_images/test_legendgram/legendgram_cmap.png differ diff --git a/mapclassify/tests/baseline_images/test_legendgram/legendgram_default.png b/mapclassify/tests/baseline_images/test_legendgram/legendgram_default.png index 43ff634..6e4b8d4 100644 Binary files a/mapclassify/tests/baseline_images/test_legendgram/legendgram_default.png and b/mapclassify/tests/baseline_images/test_legendgram/legendgram_default.png differ diff --git a/mapclassify/tests/baseline_images/test_legendgram/legendgram_kwargs.png b/mapclassify/tests/baseline_images/test_legendgram/legendgram_kwargs.png index a77c2b0..30dc03b 100644 Binary files a/mapclassify/tests/baseline_images/test_legendgram/legendgram_kwargs.png and b/mapclassify/tests/baseline_images/test_legendgram/legendgram_kwargs.png differ diff --git a/mapclassify/tests/baseline_images/test_legendgram/legendgram_map.png b/mapclassify/tests/baseline_images/test_legendgram/legendgram_map.png index 926d200..69d758e 100644 Binary files a/mapclassify/tests/baseline_images/test_legendgram/legendgram_map.png and b/mapclassify/tests/baseline_images/test_legendgram/legendgram_map.png differ diff --git a/mapclassify/tests/baseline_images/test_legendgram/legendgram_most_recent_cmap.png b/mapclassify/tests/baseline_images/test_legendgram/legendgram_most_recent_cmap.png index f350096..06e1020 100644 Binary files a/mapclassify/tests/baseline_images/test_legendgram/legendgram_most_recent_cmap.png and b/mapclassify/tests/baseline_images/test_legendgram/legendgram_most_recent_cmap.png differ diff --git a/mapclassify/tests/baseline_images/test_legendgram/legendgram_position.png b/mapclassify/tests/baseline_images/test_legendgram/legendgram_position.png index 7870aee..f870ef9 100644 Binary files a/mapclassify/tests/baseline_images/test_legendgram/legendgram_position.png and b/mapclassify/tests/baseline_images/test_legendgram/legendgram_position.png differ diff --git a/mapclassify/tests/baseline_images/test_legendgram/legendgram_vlines.png b/mapclassify/tests/baseline_images/test_legendgram/legendgram_vlines.png index d7b1ae9..ded1666 100644 Binary files a/mapclassify/tests/baseline_images/test_legendgram/legendgram_vlines.png and b/mapclassify/tests/baseline_images/test_legendgram/legendgram_vlines.png differ diff --git a/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot.png b/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot.png index 2f3bdc0..c6b1144 100644 Binary files a/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot.png and b/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot.png differ diff --git a/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_despine.png b/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_despine.png index 3f39f25..2c2239c 100644 Binary files a/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_despine.png and b/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_despine.png differ diff --git a/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_linewidth.png b/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_linewidth.png index 717eb05..17bdf63 100644 Binary files a/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_linewidth.png and b/mapclassify/tests/baseline_images/test_mapclassify/test_histogram_plot_linewidth.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/classify_xy_redblue.png b/mapclassify/tests/baseline_images/test_value_by_alpha/classify_xy_redblue.png index 958ad34..bce049c 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/classify_xy_redblue.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/classify_xy_redblue.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/divergent_revert_alpha_min_alpha.png b/mapclassify/tests/baseline_images/test_value_by_alpha/divergent_revert_alpha_min_alpha.png index 5b82c18..5303d9f 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/divergent_revert_alpha_min_alpha.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/divergent_revert_alpha_min_alpha.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/legend.png b/mapclassify/tests/baseline_images/test_value_by_alpha/legend.png index 4d8e92e..92311dd 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/legend.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/legend.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/legend_kwargs.png b/mapclassify/tests/baseline_images/test_value_by_alpha/legend_kwargs.png index 48ab86f..65c9ca3 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/legend_kwargs.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/legend_kwargs.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/no_classify_default.png b/mapclassify/tests/baseline_images/test_value_by_alpha/no_classify_default.png index 85bc234..ccce72a 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/no_classify_default.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/no_classify_default.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/pass_in_ax.png b/mapclassify/tests/baseline_images/test_value_by_alpha/pass_in_ax.png index 85bc234..ccce72a 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/pass_in_ax.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/pass_in_ax.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/shifted_colormap.png b/mapclassify/tests/baseline_images/test_value_by_alpha/shifted_colormap.png index 5dbf327..5350819 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/shifted_colormap.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/shifted_colormap.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/truncated_colormap.png b/mapclassify/tests/baseline_images/test_value_by_alpha/truncated_colormap.png index 8e36bc6..05e9fb7 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/truncated_colormap.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/truncated_colormap.png differ diff --git a/mapclassify/tests/baseline_images/test_value_by_alpha/userdefined_colors.png b/mapclassify/tests/baseline_images/test_value_by_alpha/userdefined_colors.png index e731295..e24af8c 100644 Binary files a/mapclassify/tests/baseline_images/test_value_by_alpha/userdefined_colors.png and b/mapclassify/tests/baseline_images/test_value_by_alpha/userdefined_colors.png differ diff --git a/mapclassify/tests/conftest.py b/mapclassify/tests/conftest.py index 203dd77..67ace46 100644 --- a/mapclassify/tests/conftest.py +++ b/mapclassify/tests/conftest.py @@ -4,9 +4,13 @@ def pytest_configure(config): # noqa: ARG001 """PyTest session attributes, methods, etc.""" - pytest.image_comp_kws = {"extensions": ["png"], "tol": 0.35, "remove_text": True} + pytest.image_comp_kws = { + "extensions": ["png"], + "remove_text": True, + "style": "mpl20", + } pytest.image_comp_kws_legend_text = { "extensions": ["png"], - "tol": 2.8, "remove_text": True, + "style": "mpl20", } diff --git a/mapclassify/tests/test_legendgram.py b/mapclassify/tests/test_legendgram.py index 881c40d..bb77676 100644 --- a/mapclassify/tests/test_legendgram.py +++ b/mapclassify/tests/test_legendgram.py @@ -1,3 +1,5 @@ +import copy + import geopandas as gpd import matplotlib import matplotlib.pyplot as plt @@ -5,10 +7,16 @@ import pytest from libpysal import examples from matplotlib.testing.decorators import image_comparison +from packaging.version import Version from mapclassify import EqualInterval, Quantiles from mapclassify.legendgram import _legendgram +GPD_113_dev = Version(gpd.__version__).is_devrelease and Version( + Version(gpd.__version__).base_version +) >= Version("1.1.2") + + no_data_warning = pytest.warns( UserWarning, match="There is no data associated with the `ax`", @@ -122,7 +130,10 @@ def test_legendgram_position(self): self.classifier, ax=ax, loc="upper right", legend_size=("40%", "30%") ) - @image_comparison(["legendgram_map"], **pytest.image_comp_kws) + map_image_comp_kws = copy.deepcopy(pytest.image_comp_kws) + map_image_comp_kws["tol"] = 2.14 + + @image_comparison(["legendgram_map"], **map_image_comp_kws) def test_legendgram_map(self): """Test with geopandas map""" data = gpd.read_file(examples.get_path("south.shp")).to_crs(epsg=5070) @@ -145,6 +156,7 @@ def test_legendgram_kwargs(self): orientation="horizontal", ) + @pytest.mark.skipif(GPD_113_dev, reason="Fixed in GeoPandas dev as of [2026/06]") @image_comparison(["legendgram_most_recent_cmap"], **pytest.image_comp_kws) def test_legendgram_most_recent_cmap(self): """Test most recent colormap legendgram appearance""" @@ -152,6 +164,7 @@ def test_legendgram_most_recent_cmap(self): ax = data.plot("DV80", k=10, scheme="Quantiles", cmap="Blues") data.plot("DV80", ax=ax, k=10, scheme="Quantiles", cmap="Greens") classifier = Quantiles(data["DV80"].values, k=10) + with pytest.warns( UserWarning, match=( @@ -159,7 +172,11 @@ def test_legendgram_most_recent_cmap(self): "Defaulting to most recent colormap: 'Greens'" ), ): - classifier.plot_legendgram( - ax=ax, legend_size=("50%", "20%"), loc="upper left", clip=(2, 10) - ) + kwargs = { + "ax": ax, + "legend_size": ("50%", "20%"), + "loc": "upper left", + "clip": (2, 10), + } + classifier.plot_legendgram(**kwargs) ax.set_axis_off() diff --git a/mapclassify/tests/test_mapclassify.py b/mapclassify/tests/test_mapclassify.py index a21bca9..935c521 100644 --- a/mapclassify/tests/test_mapclassify.py +++ b/mapclassify/tests/test_mapclassify.py @@ -1,5 +1,6 @@ import types +import matplotlib import numpy import pandas import pytest @@ -788,17 +789,23 @@ def setup_method(self): @image_comparison(["test_histogram_plot"], **pytest.image_comp_kws) def test_histogram_plot(self): - ax = Quantiles(self.data).plot_histogram() + fig, ax = matplotlib.pyplot.subplots(**{"figsize": (8, 6), "dpi": 100}) + ax = Quantiles(self.data).plot_histogram(ax=ax) + ax.set(xlabel=None, ylabel=None) return ax.get_figure() @image_comparison(["test_histogram_plot_despine"], **pytest.image_comp_kws) def test_histogram_plot_despine(self): - ax = Quantiles(self.data).plot_histogram(despine=False) + fig, ax = matplotlib.pyplot.subplots(**{"figsize": (8, 6), "dpi": 100}) + ax = Quantiles(self.data).plot_histogram(ax=ax, despine=False) + ax.set(xlabel=None, ylabel=None) return ax.get_figure() @image_comparison(["test_histogram_plot_linewidth"], **pytest.image_comp_kws) def test_histogram_plot_linewidth(self): + fig, ax = matplotlib.pyplot.subplots(**{"figsize": (8, 6), "dpi": 100}) ax = Quantiles(self.data).plot_histogram( - linewidth=3, linecolor="red", color="yellow" + ax=ax, linewidth=3, linecolor="red", color="yellow" ) + ax.set(xlabel=None, ylabel=None) return ax.get_figure() diff --git a/mapclassify/tests/test_value_by_alpha.py b/mapclassify/tests/test_value_by_alpha.py index 0b2c10d..b1dc60d 100644 --- a/mapclassify/tests/test_value_by_alpha.py +++ b/mapclassify/tests/test_value_by_alpha.py @@ -17,6 +17,7 @@ def setup_method(self): @image_comparison(["no_classify_default"], **pytest.image_comp_kws) def test_no_classify_default(self): fig, ax = vba_choropleth(self.x, self.y, self.gdf) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -26,6 +27,7 @@ def test_pass_in_ax(self): fig = plt.figure() ax = fig.add_subplot(111) fig, ax = vba_choropleth(self.x, self.y, self.gdf, ax=ax) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -40,6 +42,7 @@ def test_classify_xy_redblue(self): y_classification_kwds={"classifier": "quantiles"}, cmap="RdBu", ) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -57,6 +60,7 @@ def test_divergent_revert_alpha_min_alpha(self): revert_alpha=True, min_alpha=0.5, ) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -65,6 +69,7 @@ def test_divergent_revert_alpha_min_alpha(self): def test_userdefined_colors(self): color_list = ["#a1dab4", "#41b6c4", "#225ea8"] fig, ax = vba_choropleth(self.x, self.y, self.gdf, cmap=color_list) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -76,6 +81,7 @@ def test_shifted_colormap(self): assert mid08.name == "RdBu_08" fig, ax = vba_choropleth(self.x, self.y, self.gdf, cmap=mid08) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -87,6 +93,7 @@ def test_truncated_colormap(self): assert trunc0206.name == "trunc(RdBu,0.20,0.60)" fig, ax = vba_choropleth(self.x, self.y, self.gdf, cmap=trunc0206) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -111,6 +118,7 @@ def test_legend(self): y_classification_kwds={"classifier": "quantiles"}, legend=True, ) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes) @@ -126,6 +134,7 @@ def test_legend_kwargs(self): legend=True, legend_kwargs={"x_label": self.x, "y_label": self.y}, ) + ax.set(xlabel=None, ylabel=None) assert isinstance(fig, matplotlib.figure.Figure) assert isinstance(ax, matplotlib.axes.Axes)