From 316d724333a1a2bbbc98f6477c6f7941e988ee8b Mon Sep 17 00:00:00 2001 From: anon Date: Wed, 26 Aug 2026 22:38:01 +0200 Subject: [PATCH 1/9] feat(legend): expose column count and curated styling via legend_params (#770) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `show(legend_params=...)` previously accepted only {loc, location, fontsize, fontweight, fontoutline, na_in_legend} and raised on anything else, so the categorical legend's column count (and other styling) could not be controlled — a 15–30-group column always rendered as 2 columns. Add a curated, validated set of keys, all defaulting to None (unchanged auto behaviour, backward compatible): - ncols (alias ncol; matplotlib renamed it in 3.6) - markerscale - frameon / framealpha (framealpha implies frameon) - title_fontsize A single `_legend_style_kwargs` helper turns LegendParams into ax.legend() kwargs for all three legend builders. The scanpy-built primary legend takes none of these kwargs, so `_apply_legend_overrides` rebuilds it from its handles/labels/title, mirroring scanpy's placement so a lone override does not move the legend. Curated (not raw passthrough) keeps actionable validation errors and shields the public API from matplotlib version drift. Tests cover the primary and stacked legends plus validation. --- src/spatialdata_plot/pl/_validate.py | 46 ++++++++++++++- src/spatialdata_plot/pl/basic.py | 18 +++++- src/spatialdata_plot/pl/render.py | 9 ++- src/spatialdata_plot/pl/render_params.py | 6 ++ src/spatialdata_plot/pl/utils.py | 72 ++++++++++++++++++++++-- tests/pl/test_render_labels.py | 23 ++++++++ tests/pl/test_show.py | 68 +++++++++++++++++++++- 7 files changed, 230 insertions(+), 12 deletions(-) diff --git a/src/spatialdata_plot/pl/_validate.py b/src/spatialdata_plot/pl/_validate.py index 61e8f639..4c416ca5 100644 --- a/src/spatialdata_plot/pl/_validate.py +++ b/src/spatialdata_plot/pl/_validate.py @@ -213,12 +213,56 @@ def _validate_show_parameters( if not isinstance(legend_params, dict): raise TypeError("Parameter 'legend_params' must be a dictionary or None.") # `loc` is matplotlib.Legend's native key; `location` aligns with colorbar_params / scalebar_params. - allowed_legend_keys = {"loc", "location", "fontsize", "fontweight", "fontoutline", "na_in_legend"} + # `ncol` is accepted as an alias of `ncols` (matplotlib renamed it in 3.6); we normalise later. + allowed_legend_keys = { + "loc", + "location", + "fontsize", + "fontweight", + "fontoutline", + "na_in_legend", + "ncols", + "ncol", + "markerscale", + "frameon", + "framealpha", + "title_fontsize", + } unknown = set(legend_params) - allowed_legend_keys if unknown: raise ValueError( f"Unknown legend_params key(s): {sorted(unknown)}. Allowed keys: {sorted(allowed_legend_keys)}." ) + ncol, ncols = legend_params.get("ncol"), legend_params.get("ncols") + if ncol is not None and ncols is not None and ncol != ncols: + raise ValueError("legend_params got conflicting 'ncol' and 'ncols'; pass only one.") + _check_legend_styling_params(legend_params) + + +def _is_number(val: Any) -> bool: + """Return ``True`` for a real int/float, excluding bool (which is an ``int`` subclass).""" + return isinstance(val, int | float) and not isinstance(val, bool) + + +def _check_legend_styling_params(legend_params: dict[str, Any]) -> None: + """Validate the curated categorical-legend styling keys (issue #770) with actionable errors.""" + for key in ("ncols", "ncol"): + if key in legend_params and legend_params[key] is not None: + val = legend_params[key] + if isinstance(val, bool) or not isinstance(val, int) or val < 1: + raise ValueError(f"legend_params['{key}'] must be a positive integer, got {val!r}.") + + if (ms := legend_params.get("markerscale")) is not None and (not _is_number(ms) or ms <= 0): + raise ValueError(f"legend_params['markerscale'] must be a positive number, got {ms!r}.") + + if (fo := legend_params.get("frameon")) is not None and not isinstance(fo, bool): + raise TypeError(f"legend_params['frameon'] must be a bool, got {fo!r}.") + + if (fa := legend_params.get("framealpha")) is not None and (not _is_number(fa) or not 0.0 <= fa <= 1.0): + raise ValueError(f"legend_params['framealpha'] must be a number in [0, 1], got {fa!r}.") + + if (tf := legend_params.get("title_fontsize")) is not None and not (_is_number(tf) or isinstance(tf, str)): + raise TypeError(f"legend_params['title_fontsize'] must be a number or a matplotlib size string, got {tf!r}.") def _check_color_column_collision( diff --git a/src/spatialdata_plot/pl/basic.py b/src/spatialdata_plot/pl/basic.py index a755ccfc..ed178561 100644 --- a/src/spatialdata_plot/pl/basic.py +++ b/src/spatialdata_plot/pl/basic.py @@ -1406,8 +1406,11 @@ def show( See the matplotlib-scalebar documentation for the full list of options. legend_params : dict[str, Any] | None Bundled legend options; overrides the matching ``legend_*`` flat kwargs. Accepted keys: - ``location`` (or ``loc``), ``fontsize``, ``fontweight``, ``fontoutline``, - ``na_in_legend``. Unknown keys raise ``ValueError``. + ``location`` (or ``loc``), ``fontsize``, ``fontweight``, ``fontoutline``, ``na_in_legend``, + and the categorical-legend styling overrides ``ncols`` (or ``ncol``), ``markerscale``, + ``frameon``, ``framealpha`` and ``title_fontsize``. Styling overrides default to the current + auto behaviour (column count picked from the number of entries, no frame). Unknown keys raise + ``ValueError``. Returns ------- @@ -1801,6 +1804,8 @@ def _build_legend_params( Keys in the ``legend_params`` dict take precedence over the matching flat ``legend_*`` keyword arguments. """ + # Curated styling overrides (issue #770); absent keys stay at LegendParams' None defaults. + styling: dict[str, Any] = {} if legend_params: legend_fontsize = legend_params.get("fontsize", legend_fontsize) legend_fontweight = legend_params.get("fontweight", legend_fontweight) @@ -1808,6 +1813,14 @@ def _build_legend_params( legend_loc = legend_params.get("location", legend_params.get("loc", legend_loc)) legend_fontoutline = legend_params.get("fontoutline", legend_fontoutline) na_in_legend = legend_params.get("na_in_legend", na_in_legend) + styling = { + # `ncol` is matplotlib's pre-3.6 spelling; accept it as an alias of `ncols`. + "legend_ncols": legend_params.get("ncols", legend_params.get("ncol")), + "legend_markerscale": legend_params.get("markerscale"), + "legend_frameon": legend_params.get("frameon"), + "legend_framealpha": legend_params.get("framealpha"), + "legend_title_fontsize": legend_params.get("title_fontsize"), + } if legend_loc == "on data": raise ValueError("legend_loc='on data' is not supported in spatialdata-plot.") @@ -1821,6 +1834,7 @@ def _build_legend_params( colorbar=colorbar, legend_title=legend_title, outline_legend_title=outline_legend_title, + **styling, ) diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index d1242559..4497f5a1 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -78,12 +78,14 @@ colormap_with_alpha, ) from spatialdata_plot.pl.utils import ( + _apply_legend_overrides, _categorical_legend_handles, _decorate_axs, _fast_extent, _first_color_per_category, _join_table_for_element, _legend_ncol, + _legend_style_kwargs, _mpl_ax_contains_elements, _multiscale_to_spatial_image, _pixel_to_coord, @@ -403,6 +405,7 @@ def _add_legend_and_colorbar( col_for_color if isinstance(col_for_color, str) else None, ), legend_title=fill_title, + legend_params=legend_params, ) if outline_has_decorations and outline_cmap_params is not None: @@ -542,11 +545,9 @@ def _add_outline_legend( ax.legend( handles=outline_handles, title=title, - frameon=False, loc=loc, bbox_to_anchor=anchor, - fontsize=legend_params.legend_fontsize, - ncol=_legend_ncol(len(outline_handles)), + **_legend_style_kwargs(legend_params, default_ncols=_legend_ncol(len(outline_handles)), default_frameon=False), ) @@ -1707,6 +1708,8 @@ def _draw_channel_legend( na_in_legend=False, multi_panel=needs_multi_panel, ) + # Honour the curated styling overrides (#770) on the channel legend too. + _apply_legend_overrides(ax, legend_loc, legend_params) def _composite_channels( diff --git a/src/spatialdata_plot/pl/render_params.py b/src/spatialdata_plot/pl/render_params.py index f2fa8716..fd552150 100644 --- a/src/spatialdata_plot/pl/render_params.py +++ b/src/spatialdata_plot/pl/render_params.py @@ -222,6 +222,12 @@ class LegendParams: # column, in which case they default to "fill" / "outline" to disambiguate. legend_title: str | None = None outline_legend_title: str | None = None + # Curated categorical-legend styling overrides (#770); None => existing auto behaviour. + legend_ncols: int | None = None + legend_markerscale: int | float | None = None + legend_frameon: bool | None = None + legend_framealpha: float | None = None + legend_title_fontsize: int | float | _FontSize | None = None @dataclass diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 3afff5f4..63d72459 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -63,6 +63,7 @@ GraphRenderParams, ImageRenderParams, LabelsRenderParams, + LegendParams, PointsRenderParams, ScalebarParams, ShapesRenderParams, @@ -411,6 +412,64 @@ def _legend_ncol(n: int) -> int: return 1 if n <= 14 else 2 if n <= 30 else 3 +def _legend_style_kwargs(lp: LegendParams, *, default_ncols: int, default_frameon: bool) -> dict[str, Any]: + """Curated legend styling (#770) as ``ax.legend()`` kwargs, shared by every legend builder. + + Unset ``ncols``/``frameon`` fall back to the builder defaults; the rest are omitted so + matplotlib's defaults apply. ``framealpha`` implies ``frameon`` (it is invisible otherwise). + """ + kwargs: dict[str, Any] = { + "fontsize": lp.legend_fontsize, + "ncols": lp.legend_ncols or default_ncols, + "frameon": lp.legend_frameon + if lp.legend_frameon is not None + else (default_frameon or lp.legend_framealpha is not None), + } + for key, val in ( + ("markerscale", lp.legend_markerscale), + ("framealpha", lp.legend_framealpha), + ("title_fontsize", lp.legend_title_fontsize), + ): + if val is not None: + kwargs[key] = val + return kwargs + + +def _apply_legend_overrides(ax: Axes, legend_loc: str | None, lp: LegendParams) -> None: + """Re-lay-out scanpy's categorical legend to honour the curated styling overrides (#770). + + scanpy's ``_add_categorical_legend`` takes none of these kwargs and ``ncols``/``markerscale`` + cannot be changed on a built ``Legend``, so we rebuild from its handles/labels/title. Placement + mirrors scanpy so a lone override does not move the legend; unset values preserve its layout. + """ + if not any( + v is not None + for v in ( + lp.legend_ncols, + lp.legend_markerscale, + lp.legend_frameon, + lp.legend_framealpha, + lp.legend_title_fontsize, + ) + ): + return + if (leg := ax.get_legend()) is None: + return + placement = ( + {"loc": "center left", "bbox_to_anchor": (1, 0.5)} if legend_loc == "right margin" else {"loc": legend_loc} + ) + tag = getattr(leg, "_sdata_column", None) + new_leg = ax.legend( + list(leg.legend_handles), + [t.get_text() for t in leg.get_texts()], + title=leg.get_title().get_text() or None, + **_legend_style_kwargs(lp, default_ncols=leg._ncols, default_frameon=leg.get_frame_on()), + **placement, + ) + if tag is not None: + new_leg._sdata_column = tag # type: ignore[attr-defined] + + def _categorical_legend_handles(ax: Axes, color_map: Mapping[Any, Any], na_hex: str | None = None) -> list[Any]: """Empty-scatter handles (colored dots) for a categorical legend, with an optional NA entry.""" handles = [ax.scatter([], [], c=color, label=str(cat)) for cat, color in color_map.items()] @@ -426,11 +485,12 @@ def _stack_categorical_legend( na_hex: str | None, title: str | None, column: str | None, - legend_fontsize: int | float | _FontSize | None, + lp: LegendParams, ) -> None: """Build the 2nd+ categorical legend on a shared axes without dropping existing ones (#364). Placement and the column auto-title are finalized later by ``_setup_stacked_legends``. + Curated styling overrides (#770) are honoured here directly since we own this ``ax.legend()``. """ handles = _categorical_legend_handles(ax, color_mapping, na_hex) if (cur := ax.get_legend()) is not None: @@ -438,11 +498,9 @@ def _stack_categorical_legend( new_leg = ax.legend( handles=handles, title=title, - frameon=False, loc="upper left", bbox_to_anchor=(1.02, 1.0), - fontsize=legend_fontsize, - ncol=_legend_ncol(len(handles)), + **_legend_style_kwargs(lp, default_ncols=_legend_ncol(len(handles)), default_frameon=False), ) new_leg._sdata_column = column # type: ignore[attr-defined] @@ -491,7 +549,10 @@ def _decorate_axs( colorbar_requests: list[ColorbarSpec] | None = None, colorbar_label: str | None = None, legend_title: str | None = None, + legend_params: LegendParams | None = None, ) -> Axes: + # Curated styling overrides (#770); the flat legend_* args above stay authoritative otherwise. + lp = legend_params if legend_params is not None else LegendParams() if value_to_plot is not None: # if only dots were plotted without an associated value # there is not need to plot a legend or a colorbar @@ -532,7 +593,7 @@ def _decorate_axs( na_hex=na_hex, title=legend_title, column=value_to_plot, - legend_fontsize=legend_fontsize, + lp=lp, ) else: _add_categorical_legend( @@ -547,6 +608,7 @@ def _decorate_axs( na_in_legend=na_in_legend, multi_panel=fig_params.axs is not None, ) + _apply_legend_overrides(ax, legend_loc, lp) # before tagging: may rebuild the legend # Tag with the column; the column auto-title (when 2+ legends) is applied in # `_setup_stacked_legends`. An explicit title wins now. if (legend := ax.get_legend()) is not None: diff --git a/tests/pl/test_render_labels.py b/tests/pl/test_render_labels.py index 725ab23a..30dae463 100644 --- a/tests/pl/test_render_labels.py +++ b/tests/pl/test_render_labels.py @@ -170,6 +170,29 @@ def test_two_categorical_label_renders_make_two_distinct_legends(self, sdata_blo assert abs(boxes[0].y1 - boxes[1].y1) < 0.01 # tops aligned plt.close() + def test_legend_params_ncols_applies_to_both_stacked_legends(self, sdata_blobs: SpatialData): + # Regression test for #770: a forced legend_params={"ncols": ...} must reach BOTH the + # scanpy-built primary legend and the stacked (2nd) legend builder. State-based. + n = sdata_blobs["table"].n_obs + sdata_blobs["table"].obs["region"] = pd.Categorical(["blobs_labels"] * n) + sdata_blobs["table"].uns["spatialdata_attrs"]["region"] = "blobs_labels" + sdata_blobs["table"].obs["cat0"] = pd.Categorical((["A", "B"] * ((n + 1) // 2))[:n]) + sdata_blobs["table"].obs["cat1"] = pd.Categorical((["C", "D"] * ((n + 1) // 2))[:n]) + + ( + sdata_blobs.pl.render_labels("blobs_labels", color="cat0") + .pl.render_labels("blobs_labels", color="cat1") + .pl.show(legend_params={"ncols": 1, "frameon": True}) + ) + + ax = plt.gcf().axes[0] + legends = [c for c in ax.get_children() if isinstance(c, Legend)] + assert len(legends) == 2 + for leg in legends: + assert leg._ncols == 1 + assert leg.get_frame_on() is True + plt.close() + def test_three_categorical_label_renders_make_three_legends(self, sdata_blobs: SpatialData): # Regression test for #364: re-adding prior legends must not duplicate them; three renders # yield exactly three distinct legends (not four with a repeat). diff --git a/tests/pl/test_show.py b/tests/pl/test_show.py index 455c8661..0aa33f26 100644 --- a/tests/pl/test_show.py +++ b/tests/pl/test_show.py @@ -370,8 +370,15 @@ def test_legend_params_default_none_is_noop(sdata_blobs: SpatialData): [ ({"legend_params": []}, TypeError), ({"legend_params": "loc=upper right"}, TypeError), - ({"legend_params": {"loc": "upper right", "frameon": True}}, ValueError), + ({"legend_params": {"loc": "upper right", "unknown_key": True}}, ValueError), ({"legend_params": {"locaton": "upper right"}}, ValueError), # typo of "location" + ({"legend_params": {"ncols": 0}}, ValueError), # must be positive + ({"legend_params": {"ncols": 1.5}}, ValueError), # must be an int + ({"legend_params": {"markerscale": -1}}, ValueError), # must be positive + ({"legend_params": {"frameon": "yes"}}, TypeError), # must be a bool + ({"legend_params": {"framealpha": 2.0}}, ValueError), # must be in [0, 1] + ({"legend_params": {"title_fontsize": True}}, TypeError), # bool is not a valid size + ({"legend_params": {"ncol": 2, "ncols": 3}}, ValueError), # conflicting aliases ], ) def test_legend_params_validation_rejects_bad_inputs(sdata_blobs: SpatialData, kwargs, exc): @@ -393,3 +400,62 @@ def test_legend_params_location_alias_for_loc(sdata_blobs: SpatialData): legend_params={"loc": "upper left", "location": "lower right"}, return_ax=True, show=False ) plt.close("all") + + +def _categorical_labels_legend(sdata_blobs: SpatialData, legend_params, n_groups: int = 20): + """Render ``blobs_labels`` coloured by a fresh ``n_groups``-category obs column, return the legend.""" + import pandas as pd + + adata = sdata_blobs["table"] + adata.obs["_cat"] = pd.Categorical([f"g{i % n_groups}" for i in range(adata.n_obs)]) + ax = sdata_blobs.pl.render_labels(element="blobs_labels", color="_cat").pl.show( + legend_params=legend_params, return_ax=True, show=False + ) + return ax.get_legend() + + +def test_legend_params_ncols_override(sdata_blobs: SpatialData): + """Regression #770: a forced ncols sticks on the categorical legend (default would be 2 for 20 groups).""" + leg_default = _categorical_labels_legend(sdata_blobs, None) + assert leg_default._ncols == 2 + plt.close("all") + + leg_forced = _categorical_labels_legend(sdata_blobs, {"ncols": 1}) + assert leg_forced._ncols == 1 + plt.close("all") + + +def test_legend_params_ncol_alias(sdata_blobs: SpatialData): + """Regression #770: 'ncol' (matplotlib pre-3.6 spelling) is accepted as an alias of 'ncols'.""" + leg = _categorical_labels_legend(sdata_blobs, {"ncol": 3}) + assert leg._ncols == 3 + plt.close("all") + + +def test_legend_params_frame_overrides(sdata_blobs: SpatialData): + """Regression #770: frameon/framealpha reach the categorical legend (default is frameon=False).""" + leg_default = _categorical_labels_legend(sdata_blobs, None) + assert leg_default.get_frame_on() is False + plt.close("all") + + leg = _categorical_labels_legend(sdata_blobs, {"frameon": True, "framealpha": 0.5}) + assert leg.get_frame_on() is True + assert leg.get_frame().get_alpha() == 0.5 + plt.close("all") + + # framealpha alone implies frameon, else it would be invisible on the default frameless legend. + leg_alpha = _categorical_labels_legend(sdata_blobs, {"framealpha": 0.3}) + assert leg_alpha.get_frame_on() is True + assert leg_alpha.get_frame().get_alpha() == 0.3 + plt.close("all") + + +def test_legend_params_markerscale_override(sdata_blobs: SpatialData): + """Regression #770: markerscale is forwarded to the categorical legend (default 1.0).""" + leg_default = _categorical_labels_legend(sdata_blobs, None) + assert leg_default.markerscale == 1.0 + plt.close("all") + + leg = _categorical_labels_legend(sdata_blobs, {"markerscale": 2.0}) + assert leg.markerscale == 2.0 + plt.close("all") From 65ed4c84c5bd9747a65f1a743c0f1cf13f86ea2e Mon Sep 17 00:00:00 2001 From: anon Date: Wed, 26 Aug 2026 23:16:40 +0200 Subject: [PATCH 2/9] =?UTF-8?q?refactor(legend):=20address=20review=20?= =?UTF-8?q?=E2=80=94=20declare=20mpl=20floor,=20lock=20else-branch=20(#770?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Declare matplotlib>=3.8 (the first Python-3.12 wheel, which is our requires-python floor); it provides Legend.legend_handles and the ncols kwarg / Legend._ncols the rebuild relies on. - Document that an explicit frameon=False wins over framealpha (mpl ignores alpha on a hidden frame) and note _ncols is private-but-stable. - Add tests: override on a non-"right margin" loc (else-branch placement) and frameon=False + framealpha. --- pyproject.toml | 4 +++- src/spatialdata_plot/pl/utils.py | 6 +++++- tests/pl/test_show.py | 17 +++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f522b60c..57276c9c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,9 @@ dynamic = [ "version", # allow version to be set by git tags ] dependencies = [ - "matplotlib", + # >=3.8 is the first release supporting Python 3.12 (our floor) and provides Legend.legend_handles + # (3.7) and the ncols kwarg / Legend._ncols (3.6) the legend_params rebuild relies on. + "matplotlib>=3.8", "matplotlib-scalebar", "scanpy", "scikit-learn", diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 63d72459..ae02e05e 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -416,7 +416,8 @@ def _legend_style_kwargs(lp: LegendParams, *, default_ncols: int, default_frameo """Curated legend styling (#770) as ``ax.legend()`` kwargs, shared by every legend builder. Unset ``ncols``/``frameon`` fall back to the builder defaults; the rest are omitted so - matplotlib's defaults apply. ``framealpha`` implies ``frameon`` (it is invisible otherwise). + matplotlib's defaults apply. ``framealpha`` implies ``frameon``, but an explicit + ``frameon=False`` wins (matplotlib ignores ``framealpha`` on a hidden frame either way). """ kwargs: dict[str, Any] = { "fontsize": lp.legend_fontsize, @@ -463,6 +464,9 @@ def _apply_legend_overrides(ax: Axes, legend_loc: str | None, lp: LegendParams) list(leg.legend_handles), [t.get_text() for t in leg.get_texts()], title=leg.get_title().get_text() or None, + # `_ncols` is private but has been the column-count attr since mpl 3.6 (our floor is >=3.8); + # there is no public getter. A loud AttributeError on a future rename is preferable to a + # silent wrong default that would reset the preserved column count. **_legend_style_kwargs(lp, default_ncols=leg._ncols, default_frameon=leg.get_frame_on()), **placement, ) diff --git a/tests/pl/test_show.py b/tests/pl/test_show.py index 0aa33f26..08a2537e 100644 --- a/tests/pl/test_show.py +++ b/tests/pl/test_show.py @@ -432,6 +432,18 @@ def test_legend_params_ncol_alias(sdata_blobs: SpatialData): plt.close("all") +def test_legend_params_override_with_non_margin_loc(sdata_blobs: SpatialData): + """Regression #770: an override on a non-'right margin' loc rebuilds via the else-branch. + + The default is legend_loc='right margin'; a custom loc must still honour the override and keep + the frame matplotlib gives that loc (frameon=True) rather than the right-margin default. + """ + leg = _categorical_labels_legend(sdata_blobs, {"loc": "upper left", "ncols": 2}) + assert leg._ncols == 2 + assert leg.get_frame_on() is True # mpl default for a non-margin loc, preserved by the rebuild + plt.close("all") + + def test_legend_params_frame_overrides(sdata_blobs: SpatialData): """Regression #770: frameon/framealpha reach the categorical legend (default is frameon=False).""" leg_default = _categorical_labels_legend(sdata_blobs, None) @@ -449,6 +461,11 @@ def test_legend_params_frame_overrides(sdata_blobs: SpatialData): assert leg_alpha.get_frame().get_alpha() == 0.3 plt.close("all") + # An explicit frameon=False wins over framealpha (matplotlib ignores alpha on a hidden frame). + leg_off = _categorical_labels_legend(sdata_blobs, {"frameon": False, "framealpha": 0.5}) + assert leg_off.get_frame_on() is False + plt.close("all") + def test_legend_params_markerscale_override(sdata_blobs: SpatialData): """Regression #770: markerscale is forwarded to the categorical legend (default 1.0).""" From fb81d75988be624d75884b8fd6d18e77bf5a3b58 Mon Sep 17 00:00:00 2001 From: anon Date: Wed, 26 Aug 2026 23:32:44 +0200 Subject: [PATCH 3/9] revert(deps): drop redundant matplotlib>=3.8 pin The floor already derives from requires-python>=3.12 (mpl 3.8 is the first py3.12 wheel) and scanpy's matplotlib>=3.7.5 runtime dep, both of which cover legend_handles (3.7) and ncols/_ncols (3.6). --- pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 57276c9c..f522b60c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,9 +24,7 @@ dynamic = [ "version", # allow version to be set by git tags ] dependencies = [ - # >=3.8 is the first release supporting Python 3.12 (our floor) and provides Legend.legend_handles - # (3.7) and the ncols kwarg / Legend._ncols (3.6) the legend_params rebuild relies on. - "matplotlib>=3.8", + "matplotlib", "matplotlib-scalebar", "scanpy", "scikit-learn", From de5b367baddf43b3a243b6dfdb3f5f0f2c639e35 Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 27 Aug 2026 00:11:12 +0200 Subject: [PATCH 4/9] =?UTF-8?q?refactor(legend):=20address=20review=20?= =?UTF-8?q?=E2=80=94=20fix=20channel-legend=20guard,=20numpy=20scalars,=20?= =?UTF-8?q?leaner=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correctness: - _apply_legend_overrides now no-ops when legend_loc is None/"none", so a channel-legend rebuild can't grab and restyle an unrelated pre-existing legend (would crash on loc="none" / relocate on loc=None). - Validation accepts numpy scalars (numbers.Real / numbers.Integral) instead of only Python int/float, so params computed from array shapes work. - ncols/ncol alias now resolves by precedence (ncols wins, None = unset) via a shared _resolve_ncols, matching loc/location; dropped the conflict error and the falsy-zero `or` footgun. Cleanliness: - LegendParams.has_style_overrides property replaces the duplicated 5-field guard; removed the redundant ncols validation loop. - Dropped issue-number refs from src comments; trimmed the _ncols note. Tests: - Stacked test now uses >14 categories so the forced ncols=1 is a real override (was vacuous at 2 categories) and asserts title_fontsize. - default-None no-op test now compares a real categorical legend. - Added ncols alias-precedence test; removed the obsolete conflict test. --- src/spatialdata_plot/pl/_validate.py | 25 ++++++------ src/spatialdata_plot/pl/basic.py | 6 +-- src/spatialdata_plot/pl/render.py | 2 +- src/spatialdata_plot/pl/render_params.py | 17 +++++++- src/spatialdata_plot/pl/utils.py | 39 +++++++++--------- tests/pl/test_render_labels.py | 15 ++++--- tests/pl/test_show.py | 50 +++++++++++++++++++----- 7 files changed, 102 insertions(+), 52 deletions(-) diff --git a/src/spatialdata_plot/pl/_validate.py b/src/spatialdata_plot/pl/_validate.py index 0bbc3eb2..a4e87652 100644 --- a/src/spatialdata_plot/pl/_validate.py +++ b/src/spatialdata_plot/pl/_validate.py @@ -2,6 +2,7 @@ from __future__ import annotations +import numbers import warnings from collections import Counter from collections.abc import Callable, Sequence @@ -254,24 +255,26 @@ def _validate_show_parameters( raise ValueError( f"Unknown legend_params key(s): {sorted(unknown)}. Allowed keys: {sorted(allowed_legend_keys)}." ) - ncol, ncols = legend_params.get("ncol"), legend_params.get("ncols") - if ncol is not None and ncols is not None and ncol != ncols: - raise ValueError("legend_params got conflicting 'ncol' and 'ncols'; pass only one.") _check_legend_styling_params(legend_params) def _is_number(val: Any) -> bool: - """Return ``True`` for a real int/float, excluding bool (which is an ``int`` subclass).""" - return isinstance(val, int | float) and not isinstance(val, bool) + """Return ``True`` for a real number (incl. numpy scalars), excluding bool.""" + return isinstance(val, numbers.Real) and not isinstance(val, bool) + + +def _resolve_ncols(legend_params: dict[str, Any]) -> Any: + """Resolve the ``ncols``/``ncol`` alias by precedence (``ncols`` wins), treating None as unset.""" + ncols = legend_params.get("ncols") + return legend_params.get("ncol") if ncols is None else ncols def _check_legend_styling_params(legend_params: dict[str, Any]) -> None: - """Validate the curated categorical-legend styling keys (issue #770) with actionable errors.""" - for key in ("ncols", "ncol"): - if key in legend_params and legend_params[key] is not None: - val = legend_params[key] - if isinstance(val, bool) or not isinstance(val, int) or val < 1: - raise ValueError(f"legend_params['{key}'] must be a positive integer, got {val!r}.") + """Validate the curated categorical-legend styling keys with actionable errors.""" + if (n := _resolve_ncols(legend_params)) is not None and ( + not isinstance(n, numbers.Integral) or isinstance(n, bool) or n < 1 + ): + raise ValueError(f"legend_params 'ncols' must be a positive integer, got {n!r}.") if (ms := legend_params.get("markerscale")) is not None and (not _is_number(ms) or ms <= 0): raise ValueError(f"legend_params['markerscale'] must be a positive number, got {ms!r}.") diff --git a/src/spatialdata_plot/pl/basic.py b/src/spatialdata_plot/pl/basic.py index bb8b2ce5..434c290a 100644 --- a/src/spatialdata_plot/pl/basic.py +++ b/src/spatialdata_plot/pl/basic.py @@ -38,6 +38,7 @@ ) from spatialdata_plot.pl._validate import ( _expand_color_panels, + _resolve_ncols, _validate_as_points_size, _validate_graph_render_params, _validate_image_render_params, @@ -1853,7 +1854,7 @@ def _build_legend_params( Keys in the ``legend_params`` dict take precedence over the matching flat ``legend_*`` keyword arguments. """ - # Curated styling overrides (issue #770); absent keys stay at LegendParams' None defaults. + # Curated styling overrides; absent keys stay at LegendParams' None defaults. styling: dict[str, Any] = {} if legend_params: legend_fontsize = legend_params.get("fontsize", legend_fontsize) @@ -1863,8 +1864,7 @@ def _build_legend_params( legend_fontoutline = legend_params.get("fontoutline", legend_fontoutline) na_in_legend = legend_params.get("na_in_legend", na_in_legend) styling = { - # `ncol` is matplotlib's pre-3.6 spelling; accept it as an alias of `ncols`. - "legend_ncols": legend_params.get("ncols", legend_params.get("ncol")), + "legend_ncols": _resolve_ncols(legend_params), "legend_markerscale": legend_params.get("markerscale"), "legend_frameon": legend_params.get("frameon"), "legend_framealpha": legend_params.get("framealpha"), diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index bd9931aa..62987ece 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -1798,7 +1798,7 @@ def _draw_channel_legend( na_in_legend=False, multi_panel=needs_multi_panel, ) - # Honour the curated styling overrides (#770) on the channel legend too. + # Honour the curated styling overrides on the channel legend too. _apply_legend_overrides(ax, legend_loc, legend_params) diff --git a/src/spatialdata_plot/pl/render_params.py b/src/spatialdata_plot/pl/render_params.py index 2dfc898e..be675f91 100644 --- a/src/spatialdata_plot/pl/render_params.py +++ b/src/spatialdata_plot/pl/render_params.py @@ -30,6 +30,7 @@ class BBox(NamedTuple): x1: float y1: float + # Canonical definition for the package; imported by basic.py and utils.py. # replace with # from spatialdata._types import ColorLike @@ -237,13 +238,27 @@ class LegendParams: # column, in which case they default to "fill" / "outline" to disambiguate. legend_title: str | None = None outline_legend_title: str | None = None - # Curated categorical-legend styling overrides (#770); None => existing auto behaviour. + # Curated categorical-legend styling overrides; None => existing auto behaviour. legend_ncols: int | None = None legend_markerscale: int | float | None = None legend_frameon: bool | None = None legend_framealpha: float | None = None legend_title_fontsize: int | float | _FontSize | None = None + @property + def has_style_overrides(self) -> bool: + """True if any curated styling override is set (else the auto legend behaviour applies).""" + return any( + v is not None + for v in ( + self.legend_ncols, + self.legend_markerscale, + self.legend_frameon, + self.legend_framealpha, + self.legend_title_fontsize, + ) + ) + @dataclass class ColorbarSpec: diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index acfa953b..4f05076f 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -414,7 +414,7 @@ def _legend_ncol(n: int) -> int: def _legend_style_kwargs(lp: LegendParams, *, default_ncols: int, default_frameon: bool) -> dict[str, Any]: - """Curated legend styling (#770) as ``ax.legend()`` kwargs, shared by every legend builder. + """Curated legend styling as ``ax.legend()`` kwargs, shared by every legend builder. Unset ``ncols``/``frameon`` fall back to the builder defaults; the rest are omitted so matplotlib's defaults apply. ``framealpha`` implies ``frameon``, but an explicit @@ -422,7 +422,7 @@ def _legend_style_kwargs(lp: LegendParams, *, default_ncols: int, default_frameo """ kwargs: dict[str, Any] = { "fontsize": lp.legend_fontsize, - "ncols": lp.legend_ncols or default_ncols, + "ncols": default_ncols if lp.legend_ncols is None else lp.legend_ncols, "frameon": lp.legend_frameon if lp.legend_frameon is not None else (default_frameon or lp.legend_framealpha is not None), @@ -438,22 +438,14 @@ def _legend_style_kwargs(lp: LegendParams, *, default_ncols: int, default_frameo def _apply_legend_overrides(ax: Axes, legend_loc: str | None, lp: LegendParams) -> None: - """Re-lay-out scanpy's categorical legend to honour the curated styling overrides (#770). + """Re-lay-out scanpy's categorical legend to honour the curated styling overrides. scanpy's ``_add_categorical_legend`` takes none of these kwargs and ``ncols``/``markerscale`` cannot be changed on a built ``Legend``, so we rebuild from its handles/labels/title. Placement mirrors scanpy so a lone override does not move the legend; unset values preserve its layout. """ - if not any( - v is not None - for v in ( - lp.legend_ncols, - lp.legend_markerscale, - lp.legend_frameon, - lp.legend_framealpha, - lp.legend_title_fontsize, - ) - ): + # No legend is built when placement is suppressed, so there is nothing to restyle. + if not lp.has_style_overrides or legend_loc in (None, "none"): return if (leg := ax.get_legend()) is None: return @@ -465,9 +457,7 @@ def _apply_legend_overrides(ax: Axes, legend_loc: str | None, lp: LegendParams) list(leg.legend_handles), [t.get_text() for t in leg.get_texts()], title=leg.get_title().get_text() or None, - # `_ncols` is private but has been the column-count attr since mpl 3.6 (our floor is >=3.8); - # there is no public getter. A loud AttributeError on a future rename is preferable to a - # silent wrong default that would reset the preserved column count. + # `_ncols`: private column-count attr, stable since mpl 3.6 (floor >=3.8); no public getter. **_legend_style_kwargs(lp, default_ncols=leg._ncols, default_frameon=leg.get_frame_on()), **placement, ) @@ -495,7 +485,7 @@ def _stack_categorical_legend( """Build the 2nd+ categorical legend on a shared axes without dropping existing ones (#364). Placement and the column auto-title are finalized later by ``_setup_stacked_legends``. - Curated styling overrides (#770) are honoured here directly since we own this ``ax.legend()``. + Curated styling overrides are honoured here directly since we own this ``ax.legend()``. """ handles = _categorical_legend_handles(ax, color_mapping, na_hex) if (cur := ax.get_legend()) is not None: @@ -556,7 +546,7 @@ def _decorate_axs( legend_title: str | None = None, legend_params: LegendParams | None = None, ) -> Axes: - # Curated styling overrides (#770); the flat legend_* args above stay authoritative otherwise. + # Curated styling overrides; the flat legend_* args above stay authoritative otherwise. lp = legend_params if legend_params is not None else LegendParams() if value_to_plot is not None: # if only dots were plotted without an associated value @@ -887,7 +877,9 @@ def _rasterize_to_bbox( """ x0, y0, x1, y1 = bbox target_unit_to_pixels = min(target_y_dims / (y1 - y0), target_x_dims / (x1 - x0)) - return rasterize(image, ("y", "x"), [y0, x0], [y1, x1], coordinate_system, target_unit_to_pixels=target_unit_to_pixels) + return rasterize( + image, ("y", "x"), [y0, x0], [y1, x1], coordinate_system, target_unit_to_pixels=target_unit_to_pixels + ) def _rasterize_if_necessary( @@ -1000,7 +992,10 @@ def _datashader_window_image( # aggregated grid then lines up with ``base`` (same window, same resolution). cvs = ds.Canvas(plot_width=out_x, plot_height=out_y, x_range=(px0, px1), y_range=(py0, py1)) agg = np.stack( - [np.asarray(cvs.raster(src.isel(c=i), downsample_method=downsample_method).values) for i in range(src.sizes["c"])], + [ + np.asarray(cvs.raster(src.isel(c=i), downsample_method=downsample_method).values) + for i in range(src.sizes["c"]) + ], axis=0, ) base.values = agg.astype(base.dtype, copy=False) @@ -1035,7 +1030,9 @@ def _rasterize_if_necessary_datashader( target_x_dims = int(dpi * width) if crop is not None: - windowed = _datashader_window_image(image, crop, coordinate_system, target_x_dims, target_y_dims, downsample_method) + windowed = _datashader_window_image( + image, crop, coordinate_system, target_x_dims, target_y_dims, downsample_method + ) if windowed is not None: return windowed # rotation/shear or empty window: fall through to the full render (axis limits clip) diff --git a/tests/pl/test_render_labels.py b/tests/pl/test_render_labels.py index 30dae463..e93b4dd0 100644 --- a/tests/pl/test_render_labels.py +++ b/tests/pl/test_render_labels.py @@ -171,26 +171,29 @@ def test_two_categorical_label_renders_make_two_distinct_legends(self, sdata_blo plt.close() def test_legend_params_ncols_applies_to_both_stacked_legends(self, sdata_blobs: SpatialData): - # Regression test for #770: a forced legend_params={"ncols": ...} must reach BOTH the - # scanpy-built primary legend and the stacked (2nd) legend builder. State-based. + # Regression test for #770: a forced legend_params override must reach BOTH the scanpy-built + # primary legend and the stacked (2nd) legend builder. State-based. Each column has >14 + # categories so the auto column count is 2 -- forcing ncols=1 is therefore a real override, + # not a no-op that would pass even if the override were ignored. n = sdata_blobs["table"].n_obs sdata_blobs["table"].obs["region"] = pd.Categorical(["blobs_labels"] * n) sdata_blobs["table"].uns["spatialdata_attrs"]["region"] = "blobs_labels" - sdata_blobs["table"].obs["cat0"] = pd.Categorical((["A", "B"] * ((n + 1) // 2))[:n]) - sdata_blobs["table"].obs["cat1"] = pd.Categorical((["C", "D"] * ((n + 1) // 2))[:n]) + sdata_blobs["table"].obs["cat0"] = pd.Categorical([f"a{i % 15}" for i in range(n)]) + sdata_blobs["table"].obs["cat1"] = pd.Categorical([f"b{i % 15}" for i in range(n)]) ( sdata_blobs.pl.render_labels("blobs_labels", color="cat0") .pl.render_labels("blobs_labels", color="cat1") - .pl.show(legend_params={"ncols": 1, "frameon": True}) + .pl.show(legend_params={"ncols": 1, "frameon": True, "title_fontsize": 22}) ) ax = plt.gcf().axes[0] legends = [c for c in ax.get_children() if isinstance(c, Legend)] assert len(legends) == 2 for leg in legends: - assert leg._ncols == 1 + assert leg._ncols == 1 # auto would be 2 for >14 categories assert leg.get_frame_on() is True + assert leg.get_title().get_fontsize() == 22 # stacked legends carry column-name titles plt.close() def test_three_categorical_label_renders_make_three_legends(self, sdata_blobs: SpatialData): diff --git a/tests/pl/test_show.py b/tests/pl/test_show.py index 6cd14de3..4e83f720 100644 --- a/tests/pl/test_show.py +++ b/tests/pl/test_show.py @@ -183,7 +183,9 @@ def test_crop_sets_exact_axis_limits(sdata_blobs: SpatialData): def test_crop_ignores_pad_extent(sdata_blobs: SpatialData): """pad_extent must not widen a crop box (the view is exactly the box).""" - ax = sdata_blobs.pl.render_points().pl.show(crop_coord=(100, 300, 120, 260), pad_extent=50, return_ax=True, show=False) + ax = sdata_blobs.pl.render_points().pl.show( + crop_coord=(100, 300, 120, 260), pad_extent=50, return_ax=True, show=False + ) assert ax.get_xlim() == pytest.approx((100, 300)) assert ax.get_ylim() == pytest.approx((260, 120)) plt.close("all") @@ -246,11 +248,17 @@ def vrange(ax): def test_crop_datashader_autoscales_over_window(): """Datashader crop autoscales over the visible window: a value far outside the box can't recolor it.""" rng = np.random.default_rng(0) - base = pd.DataFrame({"x": rng.uniform(20, 50, 12000), "y": rng.uniform(30, 60, 12000), "val": rng.uniform(0, 1, 12000)}) + base = pd.DataFrame( + {"x": rng.uniform(20, 50, 12000), "y": rng.uniform(30, 60, 12000), "val": rng.uniform(0, 1, 12000)} + ) outside = pd.DataFrame({"x": [200.0], "y": [200.0], "val": [1000.0]}) # far outside the crop window s_a = SpatialData(points={"p": PointsModel.parse(base, transformations={"global": Identity()})}) s_b = SpatialData( - points={"p": PointsModel.parse(pd.concat([base, outside], ignore_index=True), transformations={"global": Identity()})} + points={ + "p": PointsModel.parse( + pd.concat([base, outside], ignore_index=True), transformations={"global": Identity()} + ) + } ) def raster(s): @@ -279,7 +287,12 @@ def test_crop_multiscale_selects_finer_level(): extent = {"x": (0.0, float(n)), "y": (0.0, float(n))} coarse = _multiscale_to_spatial_image(tree, dpi=10, width=5, height=5) # target ~50px over the full image fine = _multiscale_to_spatial_image( - tree, dpi=10, width=5, height=5, crop=BBox(0.0, 0.0, 80.0, 80.0), extent=extent # 10% window -> 10x boost + tree, + dpi=10, + width=5, + height=5, + crop=BBox(0.0, 0.0, 80.0, 80.0), + extent=extent, # 10% window -> 10x boost ) assert fine.shape[-1] > coarse.shape[-1] @@ -685,11 +698,20 @@ def test_legend_params_overrides_flat_kwarg(sdata_blobs: SpatialData): def test_legend_params_default_none_is_noop(sdata_blobs: SpatialData): - """legend_params=None preserves identical behavior to omitting the kwarg.""" - ax_a = sdata_blobs.pl.render_shapes(element="blobs_circles").pl.show(return_ax=True, show=False) + """legend_params=None gives a real categorical legend identical to omitting the kwarg.""" + import pandas as pd + + sdata_blobs["table"].obs["_cat"] = pd.Categorical([f"g{i % 20}" for i in range(sdata_blobs["table"].n_obs)]) + ax_a = sdata_blobs.pl.render_labels("blobs_labels", color="_cat").pl.show(return_ax=True, show=False) + leg_a = ax_a.get_legend() + auto = (leg_a._ncols, leg_a.get_frame_on()) plt.close("all") - ax_b = sdata_blobs.pl.render_shapes(element="blobs_circles").pl.show(legend_params=None, return_ax=True, show=False) - assert (ax_a.get_legend() is None) == (ax_b.get_legend() is None) + ax_b = sdata_blobs.pl.render_labels("blobs_labels", color="_cat").pl.show( + legend_params=None, return_ax=True, show=False + ) + leg_b = ax_b.get_legend() + assert leg_a is not None and leg_b is not None + assert (leg_b._ncols, leg_b.get_frame_on()) == auto plt.close("all") @@ -706,7 +728,6 @@ def test_legend_params_default_none_is_noop(sdata_blobs: SpatialData): ({"legend_params": {"frameon": "yes"}}, TypeError), # must be a bool ({"legend_params": {"framealpha": 2.0}}, ValueError), # must be in [0, 1] ({"legend_params": {"title_fontsize": True}}, TypeError), # bool is not a valid size - ({"legend_params": {"ncol": 2, "ncols": 3}}, ValueError), # conflicting aliases ], ) def test_legend_params_validation_rejects_bad_inputs(sdata_blobs: SpatialData, kwargs, exc): @@ -804,3 +825,14 @@ def test_legend_params_markerscale_override(sdata_blobs: SpatialData): leg = _categorical_labels_legend(sdata_blobs, {"markerscale": 2.0}) assert leg.markerscale == 2.0 plt.close("all") + + +def test_legend_params_ncols_alias_precedence(sdata_blobs: SpatialData): + """Regression #770: 'ncols' wins over 'ncol', and an explicit None 'ncols' falls back to 'ncol'.""" + leg_both = _categorical_labels_legend(sdata_blobs, {"ncol": 3, "ncols": 1}) + assert leg_both._ncols == 1 + plt.close("all") + + leg_none = _categorical_labels_legend(sdata_blobs, {"ncols": None, "ncol": 1}) + assert leg_none._ncols == 1 + plt.close("all") From 1d833abbfe7ff3ab24ae2ab041471d84a3508e8e Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 27 Aug 2026 01:05:08 +0200 Subject: [PATCH 5/9] feat(legend): add labelcolor to legend_params (#770) labelcolor recolours the legend entry labels (e.g. white text over a dark image). Without it, frameon=False + manual text recolouring was the only workaround. Native matplotlib ax.legend(labelcolor=...) kwarg, threaded through the shared _legend_style_kwargs so it reaches the primary, stacked and outline legends alike. Validated with matplotlib.colors.is_color_like (native, not the column-collision-strict _is_color_like, since this is an explicit styling param). --- src/spatialdata_plot/pl/_validate.py | 8 +++++--- src/spatialdata_plot/pl/basic.py | 7 ++++--- src/spatialdata_plot/pl/render_params.py | 2 ++ src/spatialdata_plot/pl/utils.py | 1 + tests/pl/test_show.py | 12 ++++++++++++ 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/spatialdata_plot/pl/_validate.py b/src/spatialdata_plot/pl/_validate.py index a4e87652..abcabd5e 100644 --- a/src/spatialdata_plot/pl/_validate.py +++ b/src/spatialdata_plot/pl/_validate.py @@ -14,7 +14,7 @@ import spatialdata as sd from anndata import AnnData from matplotlib.axes import Axes -from matplotlib.colors import Colormap, Normalize +from matplotlib.colors import Colormap, Normalize, is_color_like from matplotlib.figure import Figure from spatialdata import ( SpatialData, @@ -249,6 +249,7 @@ def _validate_show_parameters( "frameon", "framealpha", "title_fontsize", + "labelcolor", } unknown = set(legend_params) - allowed_legend_keys if unknown: @@ -288,6 +289,9 @@ def _check_legend_styling_params(legend_params: dict[str, Any]) -> None: if (tf := legend_params.get("title_fontsize")) is not None and not (_is_number(tf) or isinstance(tf, str)): raise TypeError(f"legend_params['title_fontsize'] must be a number or a matplotlib size string, got {tf!r}.") + if (lc := legend_params.get("labelcolor")) is not None and not is_color_like(lc): + raise ValueError(f"legend_params['labelcolor'] must be a matplotlib color, got {lc!r}.") + def _check_color_column_collision( sdata: SpatialData, @@ -655,8 +659,6 @@ def _check_cmap_palette_groups(param_dict: dict[str, Any], element_type: str) -> # dict palettes (e.g. from make_palette_from_data) bypass groups validation if isinstance(palette, dict): - from matplotlib.colors import is_color_like - invalid = [f"'{k}': '{v}'" for k, v in palette.items() if not is_color_like(v)] if invalid: raise ValueError(f"Dict palette contains invalid color values: {', '.join(invalid)}.") diff --git a/src/spatialdata_plot/pl/basic.py b/src/spatialdata_plot/pl/basic.py index 434c290a..df0312e5 100644 --- a/src/spatialdata_plot/pl/basic.py +++ b/src/spatialdata_plot/pl/basic.py @@ -1431,9 +1431,9 @@ def show( Bundled legend options; overrides the matching ``legend_*`` flat kwargs. Accepted keys: ``location`` (or ``loc``), ``fontsize``, ``fontweight``, ``fontoutline``, ``na_in_legend``, and the categorical-legend styling overrides ``ncols`` (or ``ncol``), ``markerscale``, - ``frameon``, ``framealpha`` and ``title_fontsize``. Styling overrides default to the current - auto behaviour (column count picked from the number of entries, no frame). Unknown keys raise - ``ValueError``. + ``frameon``, ``framealpha``, ``title_fontsize`` and ``labelcolor``. Styling overrides default + to the current auto behaviour (column count picked from the number of entries, no frame). + Unknown keys raise ``ValueError``. Returns ------- @@ -1869,6 +1869,7 @@ def _build_legend_params( "legend_frameon": legend_params.get("frameon"), "legend_framealpha": legend_params.get("framealpha"), "legend_title_fontsize": legend_params.get("title_fontsize"), + "legend_labelcolor": legend_params.get("labelcolor"), } if legend_loc == "on data": diff --git a/src/spatialdata_plot/pl/render_params.py b/src/spatialdata_plot/pl/render_params.py index be675f91..1d8eb6c2 100644 --- a/src/spatialdata_plot/pl/render_params.py +++ b/src/spatialdata_plot/pl/render_params.py @@ -244,6 +244,7 @@ class LegendParams: legend_frameon: bool | None = None legend_framealpha: float | None = None legend_title_fontsize: int | float | _FontSize | None = None + legend_labelcolor: ColorLike | None = None @property def has_style_overrides(self) -> bool: @@ -256,6 +257,7 @@ def has_style_overrides(self) -> bool: self.legend_frameon, self.legend_framealpha, self.legend_title_fontsize, + self.legend_labelcolor, ) ) diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 4f05076f..5f45a9a3 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -431,6 +431,7 @@ def _legend_style_kwargs(lp: LegendParams, *, default_ncols: int, default_frameo ("markerscale", lp.legend_markerscale), ("framealpha", lp.legend_framealpha), ("title_fontsize", lp.legend_title_fontsize), + ("labelcolor", lp.legend_labelcolor), ): if val is not None: kwargs[key] = val diff --git a/tests/pl/test_show.py b/tests/pl/test_show.py index 4e83f720..2b674614 100644 --- a/tests/pl/test_show.py +++ b/tests/pl/test_show.py @@ -728,6 +728,7 @@ def test_legend_params_default_none_is_noop(sdata_blobs: SpatialData): ({"legend_params": {"frameon": "yes"}}, TypeError), # must be a bool ({"legend_params": {"framealpha": 2.0}}, ValueError), # must be in [0, 1] ({"legend_params": {"title_fontsize": True}}, TypeError), # bool is not a valid size + ({"legend_params": {"labelcolor": "notacolor"}}, ValueError), # not a matplotlib color ], ) def test_legend_params_validation_rejects_bad_inputs(sdata_blobs: SpatialData, kwargs, exc): @@ -827,6 +828,17 @@ def test_legend_params_markerscale_override(sdata_blobs: SpatialData): plt.close("all") +def test_legend_params_labelcolor_override(sdata_blobs: SpatialData): + """Regression #770: labelcolor recolours the legend entry labels.""" + from matplotlib.colors import to_rgba + + leg = _categorical_labels_legend(sdata_blobs, {"labelcolor": "white"}) + assert leg.get_texts() # a real categorical legend was built + for text in leg.get_texts(): + assert to_rgba(text.get_color()) == to_rgba("white") + plt.close("all") + + def test_legend_params_ncols_alias_precedence(sdata_blobs: SpatialData): """Regression #770: 'ncols' wins over 'ncol', and an explicit None 'ncols' falls back to 'ncol'.""" leg_both = _categorical_labels_legend(sdata_blobs, {"ncol": 3, "ncols": 1}) From e595985c02327e6b70f8138c8c8be9c9aa77c5f7 Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 27 Aug 2026 01:17:26 +0200 Subject: [PATCH 6/9] test(legend): add minimal visual tests for each legend_params styling key (#770) One test_plot_* per curated key (ncols, markerscale, frameon, framealpha, title_fontsize, labelcolor) rendering a categorical legend with the override. Reference images to follow from the CI figure artifact (local macOS renders differ from CI's Linux freetype for text). --- tests/pl/test_show.py | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/pl/test_show.py b/tests/pl/test_show.py index 2b674614..c7ef9a57 100644 --- a/tests/pl/test_show.py +++ b/tests/pl/test_show.py @@ -848,3 +848,53 @@ def test_legend_params_ncols_alias_precedence(sdata_blobs: SpatialData): leg_none = _categorical_labels_legend(sdata_blobs, {"ncols": None, "ncol": 1}) assert leg_none._ncols == 1 plt.close("all") + + +class TestLegendParams(PlotTester, metaclass=PlotTesterMeta): + """Minimal visual regression tests for each curated legend_params styling key (#770).""" + + @staticmethod + def _color_labels(sdata_blobs: SpatialData, n_groups: int, key: str = "cat") -> None: + obs = sdata_blobs["table"].obs + obs[key] = pd.Categorical([f"g{i % n_groups}" for i in range(len(obs))]) + + def test_plot_legend_ncols(self, sdata_blobs: SpatialData): + """ncols=1 forces a single column where the auto count would be 2 (16 categories).""" + self._color_labels(sdata_blobs, 16) + sdata_blobs.pl.render_labels("blobs_labels", color="cat").pl.show(legend_params={"ncols": 1}) + + def test_plot_legend_markerscale(self, sdata_blobs: SpatialData): + """markerscale enlarges the legend handle dots.""" + self._color_labels(sdata_blobs, 5) + sdata_blobs.pl.render_labels("blobs_labels", color="cat").pl.show(legend_params={"markerscale": 3}) + + def test_plot_legend_frameon(self, sdata_blobs: SpatialData): + """frameon draws the legend box (placed over the image so it is visible).""" + self._color_labels(sdata_blobs, 5) + sdata_blobs.pl.render_labels("blobs_labels", color="cat").pl.show( + legend_params={"loc": "upper right", "frameon": True} + ) + + def test_plot_legend_framealpha(self, sdata_blobs: SpatialData): + """framealpha makes the (implied) frame semi-transparent over the image.""" + self._color_labels(sdata_blobs, 5) + sdata_blobs.pl.render_labels("blobs_labels", color="cat").pl.show( + legend_params={"loc": "upper right", "framealpha": 0.3} + ) + + def test_plot_legend_title_fontsize(self, sdata_blobs: SpatialData): + """title_fontsize sizes the (column-name) titles of stacked categorical legends.""" + self._color_labels(sdata_blobs, 3, key="cat0") + self._color_labels(sdata_blobs, 3, key="cat1") + ( + sdata_blobs.pl.render_labels("blobs_labels", color="cat0") + .pl.render_labels("blobs_labels", color="cat1") + .pl.show(legend_params={"title_fontsize": 24}) + ) + + def test_plot_legend_labelcolor(self, sdata_blobs: SpatialData): + """labelcolor recolours the legend entry labels.""" + self._color_labels(sdata_blobs, 5) + sdata_blobs.pl.render_labels("blobs_labels", color="cat").pl.show( + legend_params={"loc": "upper right", "labelcolor": "red"} + ) From cfbbf5969c40f6c70cde084afce18b9bcc1b66f2 Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 27 Aug 2026 01:28:16 +0200 Subject: [PATCH 7/9] test(legend): add CI-generated baseline images for legend_params visual tests (#770) --- .../_images/LegendParams_legend_framealpha.png | Bin 0 -> 44189 bytes tests/_images/LegendParams_legend_frameon.png | Bin 0 -> 43390 bytes .../_images/LegendParams_legend_labelcolor.png | Bin 0 -> 42844 bytes .../_images/LegendParams_legend_markerscale.png | Bin 0 -> 46791 bytes tests/_images/LegendParams_legend_ncols.png | Bin 0 -> 19069 bytes .../LegendParams_legend_title_fontsize.png | Bin 0 -> 28547 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/_images/LegendParams_legend_framealpha.png create mode 100644 tests/_images/LegendParams_legend_frameon.png create mode 100644 tests/_images/LegendParams_legend_labelcolor.png create mode 100644 tests/_images/LegendParams_legend_markerscale.png create mode 100644 tests/_images/LegendParams_legend_ncols.png create mode 100644 tests/_images/LegendParams_legend_title_fontsize.png diff --git a/tests/_images/LegendParams_legend_framealpha.png b/tests/_images/LegendParams_legend_framealpha.png new file mode 100644 index 0000000000000000000000000000000000000000..cd06cc847941e2e928334186553a97e12fb14a7e GIT binary patch literal 44189 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 literal 0 HcmV?d00001 diff --git a/tests/_images/LegendParams_legend_frameon.png b/tests/_images/LegendParams_legend_frameon.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca5d8d122a5e94832906ee87ec6300325d33fbf GIT binary patch literal 43390 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ë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�%KbhoAuJpLexVI!BMv)_$Bek0I)qEvO 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%0Au}92h?NVFs)8J(5+VXsS`wk`cY` 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 literal 0 HcmV?d00001 diff --git a/tests/_images/LegendParams_legend_ncols.png b/tests/_images/LegendParams_legend_ncols.png new file mode 100644 index 0000000000000000000000000000000000000000..4f3ba7f89851b9a4af5c9cd4add8391f73155cf2 GIT binary patch literal 19069 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 Z#x=C^@8w=n7&}A|Wd*fc#qy>>{|_?7;Mo8G literal 0 HcmV?d00001 diff --git a/tests/_images/LegendParams_legend_title_fontsize.png b/tests/_images/LegendParams_legend_title_fontsize.png new file mode 100644 index 0000000000000000000000000000000000000000..429fdc4f61c783ef9eb08e653c3a5965f5f5b87e GIT binary patch literal 28547 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 N$Vw_nl#4-w{ucrh$b0|* literal 0 HcmV?d00001 From a25a140c2af02aa02f940720433bd346165110d7 Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 27 Aug 2026 01:53:15 +0200 Subject: [PATCH 8/9] test(legend): use ncols=3 (clearer override than the default-looking 1) (#770) --- tests/pl/test_render_labels.py | 6 +++--- tests/pl/test_show.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/pl/test_render_labels.py b/tests/pl/test_render_labels.py index e93b4dd0..bcb66ad5 100644 --- a/tests/pl/test_render_labels.py +++ b/tests/pl/test_render_labels.py @@ -173,7 +173,7 @@ def test_two_categorical_label_renders_make_two_distinct_legends(self, sdata_blo def test_legend_params_ncols_applies_to_both_stacked_legends(self, sdata_blobs: SpatialData): # Regression test for #770: a forced legend_params override must reach BOTH the scanpy-built # primary legend and the stacked (2nd) legend builder. State-based. Each column has >14 - # categories so the auto column count is 2 -- forcing ncols=1 is therefore a real override, + # categories so the auto column count is 2 -- forcing ncols=3 is therefore a real override, # not a no-op that would pass even if the override were ignored. n = sdata_blobs["table"].n_obs sdata_blobs["table"].obs["region"] = pd.Categorical(["blobs_labels"] * n) @@ -184,14 +184,14 @@ def test_legend_params_ncols_applies_to_both_stacked_legends(self, sdata_blobs: ( sdata_blobs.pl.render_labels("blobs_labels", color="cat0") .pl.render_labels("blobs_labels", color="cat1") - .pl.show(legend_params={"ncols": 1, "frameon": True, "title_fontsize": 22}) + .pl.show(legend_params={"ncols": 3, "frameon": True, "title_fontsize": 22}) ) ax = plt.gcf().axes[0] legends = [c for c in ax.get_children() if isinstance(c, Legend)] assert len(legends) == 2 for leg in legends: - assert leg._ncols == 1 # auto would be 2 for >14 categories + assert leg._ncols == 3 # auto would be 2 for >14 categories assert leg.get_frame_on() is True assert leg.get_title().get_fontsize() == 22 # stacked legends carry column-name titles plt.close() diff --git a/tests/pl/test_show.py b/tests/pl/test_show.py index c7ef9a57..1e80d945 100644 --- a/tests/pl/test_show.py +++ b/tests/pl/test_show.py @@ -770,8 +770,8 @@ def test_legend_params_ncols_override(sdata_blobs: SpatialData): assert leg_default._ncols == 2 plt.close("all") - leg_forced = _categorical_labels_legend(sdata_blobs, {"ncols": 1}) - assert leg_forced._ncols == 1 + leg_forced = _categorical_labels_legend(sdata_blobs, {"ncols": 3}) + assert leg_forced._ncols == 3 plt.close("all") @@ -859,9 +859,9 @@ def _color_labels(sdata_blobs: SpatialData, n_groups: int, key: str = "cat") -> obs[key] = pd.Categorical([f"g{i % n_groups}" for i in range(len(obs))]) def test_plot_legend_ncols(self, sdata_blobs: SpatialData): - """ncols=1 forces a single column where the auto count would be 2 (16 categories).""" + """ncols=3 lays the 16-category legend out in three columns (auto count would be 2).""" self._color_labels(sdata_blobs, 16) - sdata_blobs.pl.render_labels("blobs_labels", color="cat").pl.show(legend_params={"ncols": 1}) + sdata_blobs.pl.render_labels("blobs_labels", color="cat").pl.show(legend_params={"ncols": 3}) def test_plot_legend_markerscale(self, sdata_blobs: SpatialData): """markerscale enlarges the legend handle dots.""" From 02b28230a1fe73199bbe2e301f84a77c33932768 Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 27 Aug 2026 02:06:52 +0200 Subject: [PATCH 9/9] test(legend): regenerate ncols baseline for the 3-column layout (#770) --- tests/_images/LegendParams_legend_ncols.png | Bin 19069 -> 40846 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/_images/LegendParams_legend_ncols.png b/tests/_images/LegendParams_legend_ncols.png index 4f3ba7f89851b9a4af5c9cd4add8391f73155cf2..d3f1ce9617b9826a50fcbc7d42d4a6004863036c 100644 GIT binary patch literal 40846 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%0D>$yM#tE_xII7I+fA#!+^_k$qx<3QX_ zW2t^|77f_|V;LBBEU*1OSs4b6*(1&8jlouiU9u%)yo`teMF{kD*a_+t);xW>4jErx z=I2pCx~$=+SHj5Td-nri69ER$bi6v(2^I(hwn0+E>%9*_!KPC6R5JbQwA*Yrc*ep= zvq%R(B4{+a`}h!ID!J9wI2)S zz&ikmGacCq8-}xXe*=+>@PuBXPS3B9S9Z}v3EII=F7odaOMFPwhY!yM1`6;-#00QZ zeIc6ii?JZ(fYNnX)c{83-n|)W6#>QYPHKqYQTh^(%K`T8K8Gt1H>9(}Zrf;qJ4J&P z8WR&^pdg5<(6nA%>fOPK%gU-{;yqJVM_<02SXl$mHw-^bfoc(uHD@671^J%e!eLHQ z=AMkl^}+vwn1B;GneN$n4R{z{wItf;LG><`Kpe5LsVN-9zY09Wc@NRR^SAVGuxwUX zNbyI(1Uv4}I*j;hAomhZ3;hfq5{u8sfPK>v9HD#WsjK5@_7x&gQvJ(F^Hzk^j)S8E1A>sj)x!S~QQaXcAqvC^Cds$?LhBT>h$xfI2Ds z;CD#WP5G-VU>FqQ3?);Uv~Gnv=zW+VLuuDZerrq1(9{wNiZOFAEE)#NSBMZJ51qP* z!E^rY($Fje?@wH;Vv$o=K)1zVY;lkA)JiV6$6JXo};d^Ow-`B&JWy60mUhJb&)j# zueFs$L8Au@QTH{EC`%=o&c^=ppIQri&&>+$v9U1(^6z6p9SiOIJ!;-Bo~nDke<1BQ z)Tcrp7AT3jv+h2*CO@I^iW?ra|2FSObv5K=pD5H5I&7lkjOw0Rx_Mvcn=w+{wLn%X zsZ;9!mno?eHl}#vQ*2QqtZ)^uXM&YW;9Y+?sK2A`v%{`}t5|*p+A3?g z6crX;{HoFK#X(@G1<7TAqgYzP^=U(Vcv=e1msCKV^STlndyx02G4acnFT7zJ3%qp> z@*;qU0Br&a76c*8(3vtnKTRn$i>R)wtgNp$D6#>}n^(iA)cEnZtnBdMcLFBoB$T4* zkqWv`2cF3e?sNAfmL5EyBn2Ks-ZxmOQElVkPCWYMO#+C!fUMdU%y_g$LWq~$`AVCj z$icfk<^etGKbU>!y zPYr?Zhs>|YOP2&qRY7lSTfhnr<&Tl`3Owa?nDA+MIXTH9`YEP+WK!0_B3GeWK!#7r z>~(N*B9n|tjwO%U8eZ6GKk8t9`KxDaZ0xyn59xDp;6ep2H!z85=RzypMARcABAi@Y zGL_9AS5@QfO5G9$fDnCE8ZDz z5+GOG!9fH8Ny^b+%x;TbxqU$J3+K(7>&XBMCiPB1?J_q**&OPQ>Z$`hJUpHhc7c?( z5ZVIX)CTB$fn4`K+B#gX$gPLla${5{AtU|U@-j4g=oG|3Effta(2FG{CBd?n{$h57 zMoxS8&LADiKUg$KdTxfxHr)4SXJ(Ym!o{nmwEL%EdwV;L_KF+MF52Sf+Qi(Tr*CFzmE4D?duWxmBwTfDJ73C>bZTfs%<#rvU*_};txaVd|@ z{cmu0FJvv%GxU$HnD;%RWtD6@;Cn>8LGtrP0=#Yp|I9gCc&Z5gOE?Ybg+{q1B1g(P u)Dz!{iOQ)ljI`^;)gB*7u>3zil)v@b+-*8(?<-pb{8(F_#8WLiul*OX=8YWy literal 19069 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 Z#x=C^@8w=n7&}A|Wd*fc#qy>>{|_?7;Mo8G