scverse / spatialdata-plot

Static plotting for spatialdata
BSD 3-Clause "New" or "Revised" License
38 stars 14 forks source link

When multiple categories are plotted, only one legend is shown, and colors do not match #364

Open LucaMarconato opened 2 months ago

LucaMarconato commented 2 months ago

Plotting a single categorical variable works great. This code plots two categorical variables together.

Problems:

from spatialdata.datasets import blobs
import spatialdata_plot
import matplotlib.pyplot as plt
from numpy.random import default_rng

RNG = default_rng(0)

sdata = blobs()
sdata['table'].obs['cat0'] = RNG.choice(['A', 'B'], size=len(sdata['table']))
sdata['table'].obs['cat0'] = sdata['table'].obs['cat0'].astype('category')
sdata['table'].obs['cat1'] = RNG.choice(['C', 'D'], size=len(sdata['table']))
sdata['table'].obs['cat1'] = sdata['table'].obs['cat1'].astype('category')

(
    sdata
    .pl.render_labels("blobs_labels", color='cat0')
    .pl.render_labels("blobs_labels", color='cat1')
    .pl.show()
)

plt.show()

image

timtreis commented 2 months ago

How does it look like if you create an ax and then push two separate calls onto it?

LucaMarconato commented 2 months ago

The same plot is produced.

timtreis commented 2 months ago

hm, meh. Yeah, the legends/colorbars for two plots on the same axis are lacking