You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importspatialdataimportspatialdata_plotsdata=spatialdata.datasets.blobs()
# add some labelling we want to color with a custom defined palettesdata["table"].obs["labelling"] = (sdata["table"].obs["instance_id"]>10).astype('int').astype('str')
sdata["table"].obs["labelling"] =sdata["table"].obs["labelling"].astype('category')
# with labels it workssdata.pl.render_labels("blobs_labels", color="labelling", palette= ["red", "blue"], groups= ["0", "1"]).pl.show()
# transform to shapes and add necessary annotationsdata["test_labels"] =spatialdata.to_polygons(sdata["blobs_labels"])
adata=sdata["table"].copy()
adata.obs["region"] ="test_labels"adata.uns["spatialdata_attrs"]["region"] ="test_labels"sdata["test_annotation"] =spatialdata.models.TableModel.parse(adata)
# with shapes it throws an errorsdata.pl.render_shapes("test_labels", color="labelling", palette= ["red", "blue"], groups= ["0", "1"]).pl.show()
Error message:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/var/folders/35/p4c58_4n3bb0bxnzgns1t7kh0000gn/T/ipykernel_76317/1461128882.py in ?()
5 adata.obs["region"] = "test_labels"
6 adata.uns["spatialdata_attrs"]["region"] = "test_labels"
7 sdata["test_annotation"] = spatialdata.models.TableModel.parse(adata)
8
----> 9 sdata.pl.render_shapes("test_labels", color = "labelling", palette = ["red", "blue"], groups = ["0", "1"]).pl.show()
~/Documents/GitHub/spatialdata-plot/src/spatialdata_plot/pl/basic.py in ?(self, coordinate_systems, legend_fontsize, legend_fontweight, legend_loc, legend_fontoutline, na_in_legend, colorbar, wspace, hspace, ncols, frameon, figsize, dpi, fig, title, share_extent, pad_extent, ax, return_ax, save)
932 sdata, wanted_elements, params_copy, cs, "shapes"
933 )
934
935 if wanted_shapes_on_this_cs:
--> 936 _render_shapes(
937 sdata=sdata,
938 render_params=params_copy,
939 coordinate_system=cs,
~/Documents/GitHub/spatialdata-plot/src/spatialdata_plot/pl/render.py in ?(sdata, render_params, coordinate_system, ax, fig_params, scalebar_params, legend_params)
135 # filter by `groups`
136 if isinstance(groups, list) and color_source_vector is not None:
137 mask = color_source_vector.isin(groups)
138 shapes = shapes[mask]
--> 139 shapes = shapes.reset_index()
140 color_source_vector = color_source_vector[mask]
141 color_vector = color_vector[mask]
142
~/mambaforge/envs/scportrait/lib/python3.11/site-packages/pandas/core/frame.py in ?(self, level, drop, inplace, col_level, col_fill, allow_duplicates, names)
6468 level_values = algorithms.take(
6469 level_values, lab, allow_fill=True, fill_value=lev._na_value
6470 )
6471
-> 6472 new_obj.insert(
6473 0,
6474 name,
6475 level_values,
~/mambaforge/envs/scportrait/lib/python3.11/site-packages/pandas/core/frame.py in ?(self, loc, column, value, allow_duplicates)
5154 "'self.flags.allows_duplicate_labels' is False."
5155 )
5156 if not allow_duplicates and column in self.columns:
5157 # Should this be a different kind of error??
-> 5158 raise ValueError(f"cannot insert {column}, already exists")
5159 if not is_integer(loc):
5160 raise TypeError("loc must be int")
5161 # convert non stdlib ints to satisfy typing checks
ValueError: cannot insert label, already exists
Without specifying palette and groups the code runs fine and generates the expected result:
sdata.pl.render_labels("blobs_labels", color = "labelling").pl.show()
The text was updated successfully, but these errors were encountered:
sophiamaedler
added a commit
to sophiamaedler/spatialdata-plot
that referenced
this issue
May 18, 2025
Code to reproduce:
Error message:
Without specifying palette and groups the code runs fine and generates the expected result:
sdata.pl.render_labels("blobs_labels", color = "labelling").pl.show()
The text was updated successfully, but these errors were encountered: