From ba7d1d45535abe4bda1a28179637505be8b2fe37 Mon Sep 17 00:00:00 2001 From: cvanelteren Date: Thu, 29 Jan 2026 07:17:08 +1000 Subject: [PATCH] Keep gridline labels when updating ticklen --- ultraplot/axes/geo.py | 3 +++ ultraplot/tests/test_geographic.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/ultraplot/axes/geo.py b/ultraplot/axes/geo.py index e0541a6b1..014b2401c 100644 --- a/ultraplot/axes/geo.py +++ b/ultraplot/axes/geo.py @@ -2139,6 +2139,9 @@ def _add_geoticks(self, x_or_y: str, itick: Any, ticklen: Any) -> None: for size, which in zip(sizes, ["major", "minor"]): params.update({"length": size}) params.pop("grid_alpha", None) + # Avoid overriding gridliner label toggles via tick_params defaults. + for key in ("labeltop", "labelbottom", "labelleft", "labelright"): + params.pop(key, None) self.tick_params( axis=x_or_y, which=which, diff --git a/ultraplot/tests/test_geographic.py b/ultraplot/tests/test_geographic.py index a57a6904c..42499629e 100644 --- a/ultraplot/tests/test_geographic.py +++ b/ultraplot/tests/test_geographic.py @@ -1137,6 +1137,20 @@ def test_consistent_range(): assert np.allclose(latview, latlim, atol=1.0) +def test_labels_preserved_with_ticklen(): + """ + Ensure ticklen updates do not disable top/right gridline labels. + """ + fig, ax = uplt.subplots(proj="cyl") + ax.format(lonlim=(0, 10), latlim=(0, 10), labels="both", lonlines=2, latlines=2) + assert ax.gridlines_major.top_labels + assert ax.gridlines_major.right_labels + + ax.format(ticklen=1, labels="both") + assert ax.gridlines_major.top_labels + assert ax.gridlines_major.right_labels + + @pytest.mark.mpl_image_compare def test_dms_used_for_mercator(): """