Skip to content

Commit f885f38

Browse files
authored
Fix palette and groups (#226)
1 parent 6e63e22 commit f885f38

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

src/spatialdata_plot/pl/basic.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
import sys
4+
import warnings
45
from collections import OrderedDict
56
from copy import deepcopy
67
from pathlib import Path
@@ -762,7 +763,9 @@ def show(
762763
# go through tree
763764

764765
for i, cs in enumerate(coordinate_systems):
765-
sdata = self._copy()
766+
with warnings.catch_warnings():
767+
warnings.filterwarnings("ignore", category=UserWarning)
768+
sdata = self._copy()
766769
_, has_images, has_labels, has_points, has_shapes = (
767770
cs_contents.query(f"cs == '{cs}'").iloc[0, :].values.tolist()
768771
)
@@ -851,7 +854,7 @@ def show(
851854
source=sdata[table],
852855
target=sdata[table],
853856
key=params_copy.color[index],
854-
palette=params_copy.palette,
857+
palette=params_copy.palette[index],
855858
)
856859

857860
rasterize = (params_copy.scale is None) or (

src/spatialdata_plot/pl/render.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -604,8 +604,8 @@ def _render_labels(
604604
element_index=i,
605605
element_name=e,
606606
value_to_plot=cast(list[str], render_params.color)[i],
607-
groups=render_params.groups,
608-
palette=render_params.palette,
607+
groups=render_params.groups[i],
608+
palette=render_params.palette[i],
609609
na_color=render_params.cmap_params.na_color,
610610
cmap_params=render_params.cmap_params,
611611
table_name=cast(str, table_name),
@@ -686,7 +686,7 @@ def _render_labels(
686686
adata=table,
687687
value_to_plot=cast(list[str], render_params.color)[i],
688688
color_source_vector=color_source_vector,
689-
palette=render_params.palette,
689+
palette=render_params.palette[i],
690690
alpha=render_params.fill_alpha,
691691
na_color=render_params.cmap_params.na_color,
692692
legend_fontsize=legend_params.legend_fontsize,

src/spatialdata_plot/pl/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -628,11 +628,11 @@ def _set_color_source_vec(
628628
color_source_vector = pd.Categorical(color_source_vector) # convert, e.g., `pd.Series`
629629
categories = color_source_vector.categories
630630

631-
if groups is not None:
631+
if groups is not None and groups[0] is not None:
632632
color_source_vector = color_source_vector.remove_categories(categories.difference(groups))
633633
categories = groups
634634

635-
if groups is not None:
635+
if groups is not None and groups[0] is not None:
636636
if isinstance(palette, list):
637637
palette_input = palette[0] if palette[0] is None else palette
638638
elif palette is not None and isinstance(palette, list):
@@ -717,6 +717,7 @@ def _get_palette(
717717
palette: ListedColormap | str | list[str] | None = None,
718718
alpha: float = 1.0,
719719
) -> Mapping[str, str] | None:
720+
palette = None if isinstance(palette, list) and palette[0] is None else palette
720721
if adata is not None and palette is None:
721722
try:
722723
palette = adata.uns[f"{cluster_key}_colors"] # type: ignore[arg-type]
@@ -772,6 +773,7 @@ def _maybe_set_colors(
772773
palette = ListedColormap([palette])
773774
if isinstance(palette, ListedColormap): # `scanpy` requires it
774775
palette = cycler(color=palette.colors)
776+
palette = None
775777
add_colors_for_categorical_sample_annotation(target, key=key, force_update_colors=True, palette=palette)
776778

777779

@@ -809,6 +811,7 @@ def _decorate_axs(
809811
# order of clusters should agree to palette order
810812
clusters = color_source_vector.unique()
811813
clusters = clusters[~clusters.isnull()]
814+
palette = None if isinstance(palette, list) and palette[0] else palette
812815
palette = _get_palette(
813816
adata=adata, cluster_key=value_to_plot, categories=clusters, palette=palette, alpha=alpha
814817
)

0 commit comments

Comments
 (0)