From cab56397a1fd71ed28bfc513d194c5bd93f25469 Mon Sep 17 00:00:00 2001 From: Sonja Stockhaus Date: Tue, 12 Dec 2023 20:34:19 +0100 Subject: [PATCH 1/3] add case for when norm=None to enable plotting of continuous value --- src/spatialdata_plot/pl/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index c3eab57f..4d3c330e 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -353,7 +353,9 @@ def _prepare_cmap_norm( cmap.set_bad("lightgray" if na_color is None else na_color) - if isinstance(norm, Normalize) or not norm: + if norm is None: + norm = Normalize(vmin=vmin, vmax=vmax) + elif isinstance(norm, Normalize) or not norm: pass # TODO elif vcenter is None: norm = Normalize(vmin=vmin, vmax=vmax) From d08200b84b9acee18a405723fee53f99a0b469fc Mon Sep 17 00:00:00 2001 From: Sonja Stockhaus Date: Tue, 12 Dec 2023 20:46:18 +0100 Subject: [PATCH 2/3] test and changelog --- CHANGELOG.md | 1 + ..._can_color_labels_by_continuous_variable.png | Bin 0 -> 12891 bytes tests/pl/test_render_labels.py | 3 +++ 3 files changed, 4 insertions(+) create mode 100644 tests/_images/Labels_can_color_labels_by_continuous_variable.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 58514ae9..f61f9d23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning][]. - Now dropping index when plotting shapes after spatial query (#177) - Points are now being correctly rotated (#198) - User can now pass Colormap objects to the cmap argument in render_images. When only one cmap is given for 3 channels, it is now applied to each channel (#188, #194) +- Labels can now be colored by a continuous variable without setting `norm` (#201) ## [0.0.6] - 2023-11-06 diff --git a/tests/_images/Labels_can_color_labels_by_continuous_variable.png b/tests/_images/Labels_can_color_labels_by_continuous_variable.png new file mode 100644 index 0000000000000000000000000000000000000000..f68fb6a56a8179aee9390eb8c750f7bcf098332a GIT binary patch literal 12891 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 Date: Tue, 12 Dec 2023 20:51:02 +0100 Subject: [PATCH 3/3] update test image --- ...an_color_labels_by_continuous_variable.png | Bin 12891 -> 14178 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/_images/Labels_can_color_labels_by_continuous_variable.png b/tests/_images/Labels_can_color_labels_by_continuous_variable.png index f68fb6a56a8179aee9390eb8c750f7bcf098332a..30b3fa8bcf28b3def1ae9a35e06b9e9f1222475c 100644 GIT binary patch literal 14178 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 literal 12891 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