sdata = sd.read_zarr("/Users/tim.treis/Documents/GitHub/spatialdata-notebooks/notebooks/examples/visium.zarr")
sdata.table.obs["new_cluster"] = "NA"
sdata.table.obs.loc[sdata.table.obs.array_row==15.0, "new_cluster"] = "celltype_A"
sdata.table.obs.loc[sdata.table.obs.array_row==47.0, "new_cluster"] = "celltype_B"
sdata.table.obs.new_cluster = sdata.table.obs.new_cluster.astype("category")
sdata.pl.render_shapes("ST8059048_shapes", color="new_cluster", palette=["red", "blue"]).pl.show()
File ~/Documents/GitHub/spatialdata-plot/src/spatialdata_plot/pl/render.py:88, in _render_shapes(sdata, render_params, coordinate_system, ax, fig_params, scalebar_params, legend_params)
85 table = sdata.table[sdata.table.obs[_get_region_key(sdata)].isin([e])]
87 # get color vector (categorical or continuous)
---> 88 color_source_vector, color_vector, _ = _set_color_source_vec(
89 sdata=sdata_filt,
90 element=sdata_filt.shapes[e],
91 element_name=e,
92 value_to_plot=render_params.color,
93 layer=render_params.layer,
94 groups=render_params.groups,
95 palette=render_params.palette,
96 na_color=render_params.cmap_params.na_color,
97 alpha=render_params.fill_alpha,
98 cmap_params=render_params.cmap_params,
99 )
101 values_are_categorical = color_source_vector is not None
103 # color_source_vector is None when the values aren't categorical
File ~/Documents/GitHub/spatialdata-plot/src/spatialdata_plot/pl/utils.py:867, in _set_color_source_vec(sdata, element, value_to_plot, element_name, layer, groups, palette, na_color, alpha, cmap_params)
865 color_vector = color_source_vector.map(color_map)
866 if color_vector.isna().any():
--> 867 color_vector = color_vector.add_categories([to_hex(na_color)])
868 color_vector = color_vector.fillna(to_hex(na_color))
870 return color_source_vector, color_vector, True
AttributeError: 'Index' object has no attribute 'add_categories'
MRE
yields
Should just throw an error that there is a length mismatch instead