Skip to content

Colorbar not shown for image #304

Closed

Description

@LucaMarconato

I am plotting an image and no colorbar is display, even if colorbar should default to True in pl.show().

I am currently using the workaround shown in the code to fix this.

##
from spatialdata.datasets import blobs
import spatialdata_plot
import matplotlib.colors
import matplotlib.pyplot as plt

sdata = blobs()

sdata['single_channel'] = sdata['blobs_image'].sel(c=slice(0, 0))

sdata.pl.render_images('single_channel').pl.show()

# workaround
ax = plt.gca()
data = sdata['single_channel'].values
norm = matplotlib.colors.Normalize(vmin=data.min(), vmax=data.max())
mappable = plt.cm.ScalarMappable(cmap='viridis', norm=norm)
plt.colorbar(mappable, ax=ax)

plt.show()

Activity

  1. timtreis commented on Jul 14, 2024

    @timtreis
    Member

    Why would we plot a colorbar by default for an image? <- leaving this because it's more of a design choice.

    I think the actual issue is that there is none, even if colorbar is manually set to True, right?

  2. LucaMarconato commented on Jul 15, 2024

    @LucaMarconato
    MemberAuthor

    I think the actual issue is that there is none, even if colorbar is manually set to True, right?

    Exactly!

    Why would we plot a colorbar by default for an image? <- leaving this because it's more of a design choice.

    Yes, here I would let the user choose.

  3. melonora commented on Jul 15, 2024

    @melonora
    Contributor

    will have a look, btw just FYI, you can just specify channel=0 if you want to plot a single channel.

  4. self-assigned this
    on Jul 15, 2024
  5. linked a pull request that will close this issueRefactor of `colorbar` and `norm` logic #346on Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions