From 36f1fec590c2f30779e16dd9e5f69c0571c420f0 Mon Sep 17 00:00:00 2001 From: Andreas Eisenbarth Date: Wed, 29 Nov 2023 21:04:46 +0100 Subject: [PATCH] Fix passing colormap objects --- src/spatialdata_plot/pl/utils.py | 7 ++++++- ...ges_can_pass_cmap_name_to_render_images.png} | Bin ...es_can_pass_cmap_object_to_render_images.png | Bin 0 -> 38467 bytes tests/pl/test_render_images.py | 5 ++++- 4 files changed, 10 insertions(+), 2 deletions(-) rename tests/_images/{Images_can_pass_cmap_to_render_images.png => Images_can_pass_cmap_name_to_render_images.png} (100%) create mode 100644 tests/_images/Images_can_pass_cmap_object_to_render_images.png diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 60e84c1e..20bb111e 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -344,7 +344,12 @@ def _prepare_cmap_norm( **kwargs: Any, ) -> CmapParams: is_default = cmap is None - cmap = copy(matplotlib.colormaps[rcParams["image.cmap"] if cmap is None else cmap]) + if cmap is None: + cmap = rcParams["image.cmap"] + if isinstance(cmap, str): + cmap = matplotlib.colormaps[cmap] + + cmap = copy(cmap) cmap.set_bad("lightgray" if na_color is None else na_color) if isinstance(norm, Normalize) or not norm: diff --git a/tests/_images/Images_can_pass_cmap_to_render_images.png b/tests/_images/Images_can_pass_cmap_name_to_render_images.png similarity index 100% rename from tests/_images/Images_can_pass_cmap_to_render_images.png rename to tests/_images/Images_can_pass_cmap_name_to_render_images.png diff --git a/tests/_images/Images_can_pass_cmap_object_to_render_images.png b/tests/_images/Images_can_pass_cmap_object_to_render_images.png new file mode 100644 index 0000000000000000000000000000000000000000..f18fa5f0dabaf19c51b124e4cae6c7351986998e GIT binary patch literal 38467 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