Skip to content

Commit 0c6940d

Browse files
committed
2 parents 54c0355 + 49434a3 commit 0c6940d

File tree

5 files changed

+77
-74
lines changed

5 files changed

+77
-74
lines changed

CHANGELOG.md

Lines changed: 62 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -12,166 +12,167 @@ and this project adheres to [Semantic Versioning][].
1212

1313
### Fixed
1414

15-
- Transformations of Points and Shapes are now applied before rendering with datashader (#378)
15+
- Transformations of Points and Shapes are now applied before rendering with datashader (#378)
16+
- Fix bug due to `sc.get.obs_df()` returning a different type (#393)
1617

1718
## [0.2.8] - 2024-11-26
1819

1920
### Changed
2021

21-
- Support for `xarray.DataTree` (which moved from `datatree.DataTree`) (#380)
22+
- Support for `xarray.DataTree` (which moved from `datatree.DataTree`) (#380)
2223

2324
## [0.2.7] - 2024-10-24
2425

2526
### Added
2627

27-
- The user can now specify `datashader_reduction` to control the rendering behaviour (#309)
28-
- Rendering outlines of shapes with datashader works now (#309)
28+
- The user can now specify `datashader_reduction` to control the rendering behaviour (#309)
29+
- Rendering outlines of shapes with datashader works now (#309)
2930

3031
### Fixed
3132

32-
- datashader now uses canvas size = image size which speeds up the rendering (#309)
33-
- datashader now uses the `linear` as interpolation method for colormaps instead of the default `eq_hist` to make it equivalent to matplotlib (#309)
34-
- point sizes of datashader now agree with matplotlib also when dpi != 100 (#309)
35-
- Giving a custom colormap when rendering a multiscale image now works (#586)
33+
- datashader now uses canvas size = image size which speeds up the rendering (#309)
34+
- datashader now uses the `linear` as interpolation method for colormaps instead of the default `eq_hist` to make it equivalent to matplotlib (#309)
35+
- point sizes of datashader now agree with matplotlib also when dpi != 100 (#309)
36+
- Giving a custom colormap when rendering a multiscale image now works (#586)
3637

3738
## [0.2.6] - 2024-09-04
3839

3940
### Changed
4041

41-
- Lowered RMSE-threshold for plot-based tests from 45 to 15 (#344)
42-
- When subsetting to `groups`, `NA` isn't automatically added to legend (#344)
43-
- When rendering a single image channel, a colorbar is now shown (#346)
44-
- Removed `percentiles_for_norm` parameter (#346)
45-
- Changed `norm` to no longer accept bools, only `mpl.colors.Normalise` or `None` (#346)
42+
- Lowered RMSE-threshold for plot-based tests from 45 to 15 (#344)
43+
- When subsetting to `groups`, `NA` isn't automatically added to legend (#344)
44+
- When rendering a single image channel, a colorbar is now shown (#346)
45+
- Removed `percentiles_for_norm` parameter (#346)
46+
- Changed `norm` to no longer accept bools, only `mpl.colors.Normalise` or `None` (#346)
4647

4748
### Fixed
4849

49-
- Filtering with `groups` now preserves original cmap (#344)
50-
- Non-selected `groups` are now not shown in `na_color` (#344)
51-
- Several issues associated with `norm` and `colorbar` (#346)
50+
- Filtering with `groups` now preserves original cmap (#344)
51+
- Non-selected `groups` are now not shown in `na_color` (#344)
52+
- Several issues associated with `norm` and `colorbar` (#346)
5253

5354
## [0.2.5] - 2024-08-23
5455

5556
### Changed
5657

57-
- Replaced `outline` parameter in `render_labels` with alpha-based logic (#323)
58-
- Lowered RMSE-threshold for plot-based tests from 60 to 45 (#323)
59-
- Removed `preprocessing` (.pp) accessor (#329)
58+
- Replaced `outline` parameter in `render_labels` with alpha-based logic (#323)
59+
- Lowered RMSE-threshold for plot-based tests from 60 to 45 (#323)
60+
- Removed `preprocessing` (.pp) accessor (#329)
6061

6162
### Fixed
6263

63-
- Minor fixes for several tests as a result of the threshold change (#323)
64+
- Minor fixes for several tests as a result of the threshold change (#323)
6465

6566
## [0.2.4] - 2024-08-07
6667

6768
### Added
6869

69-
- Added utils function for 0-transparent cmaps (#302)
70+
- Added utils function for 0-transparent cmaps (#302)
7071

7172
### Fixed
7273

73-
- Took RNG out of categorical label test (#306)
74-
- Performance bug when plotting shapes (#298)
75-
- scale parameter was ignored for single-scale images (#301)
76-
- Changes to support for dask-expr (#283)
77-
- Added error handling for non-existent elements (#305)
78-
- Specifying vmin and vmax properly clips image data (#307)
79-
- import bug `get_cmap()` (8fd969c)
74+
- Took RNG out of categorical label test (#306)
75+
- Performance bug when plotting shapes (#298)
76+
- scale parameter was ignored for single-scale images (#301)
77+
- Changes to support for dask-expr (#283)
78+
- Added error handling for non-existent elements (#305)
79+
- Specifying vmin and vmax properly clips image data (#307)
80+
- import bug `get_cmap()` (8fd969c)
8081

8182
## [0.2.3] - 2024-07-03
8283

8384
### Added
8485

85-
- Datashader support for points and shapes (#244)
86+
- Datashader support for points and shapes (#244)
8687

8788
### Changed
8889

89-
- All parameters are now provided for a single element (#272)
90+
- All parameters are now provided for a single element (#272)
9091

9192
### Fixed
9293

93-
- Fix color assignment for NaN values (#257)
94-
- Zorder of rendering now strictly follows the order of the render_x calls (#244)
94+
- Fix color assignment for NaN values (#257)
95+
- Zorder of rendering now strictly follows the order of the render_x calls (#244)
9596

9697
## [0.2.2] - 2024-05-02
9798

9899
### Fixed
99100

100-
- Fixed `fill_alpha` ignoring `alpha` channel from custom cmap (#236)
101-
- Fix channel str support (#221)
101+
- Fixed `fill_alpha` ignoring `alpha` channel from custom cmap (#236)
102+
- Fix channel str support (#221)
102103

103104
## [0.2.1] - 2024-03-26
104105

105106
### Minor
106107

107-
- Adjusted GitHub worklows
108+
- Adjusted GitHub worklows
108109

109110
## [0.2.0] - 2024-03-24
110111

111112
### Added
112113

113-
- Support for plotting multiple tables @melonora
114+
- Support for plotting multiple tables @melonora
114115

115116
### Fixed
116117

117-
- Several bugfixes, especially for colors and palettes @melonora
118+
- Several bugfixes, especially for colors and palettes @melonora
118119

119120
## [0.1.0] - 2024-01-17
120121

121122
### Added
122123

123-
- Multiscale image handling: user can specify a scale, else the best scale is selected automatically given the figure size and dpi (#164)
124-
- Large images are automatically rasterized to speed up performance (#164)
125-
- Added better error message for mismatch in cs and ax number (#185)
126-
- Beter test coverage for correct plotting of elements after transformation (#198)
127-
- Can now stack render commands (#190, #192)
128-
- The `color` argument in render_shapes/points now accepts actual colors as well (#199)
129-
- Input arguments are now evaulated for their types in basic.py (#199)
124+
- Multiscale image handling: user can specify a scale, else the best scale is selected automatically given the figure size and dpi (#164)
125+
- Large images are automatically rasterized to speed up performance (#164)
126+
- Added better error message for mismatch in cs and ax number (#185)
127+
- Beter test coverage for correct plotting of elements after transformation (#198)
128+
- Can now stack render commands (#190, #192)
129+
- The `color` argument in render_shapes/points now accepts actual colors as well (#199)
130+
- Input arguments are now evaulated for their types in basic.py (#199)
130131

131132
### Fixed
132133

133-
- Now dropping index when plotting shapes after spatial query (#177)
134-
- Points are now being correctly rotated (#198)
135-
- 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)
134+
- Now dropping index when plotting shapes after spatial query (#177)
135+
- Points are now being correctly rotated (#198)
136+
- 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)
136137

137138
## [0.0.6] - 2023-11-06
138139

139140
### Added
140141

141-
- Pushed `get_extent` functionality upstream to `spatialdata` (#162)
142+
- Pushed `get_extent` functionality upstream to `spatialdata` (#162)
142143

143144
## [0.0.5] - 2023-10-02
144145

145146
### Added
146147

147-
- Can now scale shapes (#152)
148-
- Can now plot columns from GeoDataFrame (#149)
148+
- Can now scale shapes (#152)
149+
- Can now plot columns from GeoDataFrame (#149)
149150

150151
### Fixed
151152

152-
- Multipolygons are now handled correctly (#93)
153-
- Legend order is now deterministic (#143)
154-
- Images no longer normalised by default (#150)
155-
- Filtering of shapes and points using the `groups` argument is now possible, coloring by palette and cmap arguments works for shapes and points (#153)
156-
- Colorbar no longer autoscales to [0, 1] (#155)
157-
- Plotting shapes after a spatial query is now possible (#163)
153+
- Multipolygons are now handled correctly (#93)
154+
- Legend order is now deterministic (#143)
155+
- Images no longer normalised by default (#150)
156+
- Filtering of shapes and points using the `groups` argument is now possible, coloring by palette and cmap arguments works for shapes and points (#153)
157+
- Colorbar no longer autoscales to [0, 1] (#155)
158+
- Plotting shapes after a spatial query is now possible (#163)
158159

159160
## [0.0.4] - 2023-08-11
160161

161162
### Fixed
162163

163-
- Multi-scale images/labels are now correctly substituted and the action is logged (#131).
164-
- Empty geometries among the shapes can be handeled (#133).
165-
- `outline_width` parameter in render_shapes is now a float that actually determines the line width (#139).
164+
- Multi-scale images/labels are now correctly substituted and the action is logged (#131).
165+
- Empty geometries among the shapes can be handeled (#133).
166+
- `outline_width` parameter in render_shapes is now a float that actually determines the line width (#139).
166167

167168
## [0.0.2] - 2023-06-25
168169

169170
### Fixed
170171

171-
- Multiple bugfixes of which I didn't keep track of.
172+
- Multiple bugfixes of which I didn't keep track of.
172173

173174
## [0.0.1] - 2023-04-04
174175

175176
### Added
176177

177-
- Initial release of `spatialdata-plot` with support for `images`, `labels`, `points` and `shapes`.
178+
- Initial release of `spatialdata-plot` with support for `images`, `labels`, `points` and `shapes`.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ SpatialData’s plotting capabilities allow to quickly visualise all contained m
2626

2727
For more information on the `spatialdata-plot` library, please refer to the [documentation](https://spatialdata.scverse.org/projects/plot/en/latest/index.html). In particular, the
2828

29-
- [API documentation][link-api].
30-
- [Example notebooks][link-notebooks] (section "Visiualizations")
29+
- [API documentation][link-api].
30+
- [Example notebooks][link-notebooks] (section "Visiualizations")
3131

3232
## Installation
3333

docs/contributing.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,11 @@ Specify `vX.X.X` as a tag name and create a release. For more information, see [
9999

100100
Please write documentation for new or changed features and use-cases. This project uses [sphinx][] with the following features:
101101

102-
- the [myst][] extension allows to write documentation in markdown/Markedly Structured Text
103-
- [Numpy-style docstrings][numpydoc] (through the [napoloen][numpydoc-napoleon] extension).
104-
- Jupyter notebooks as tutorials through [myst-nb][] (See [Tutorials with myst-nb](#tutorials-with-myst-nb-and-jupyter-notebooks))
105-
- [Sphinx autodoc typehints][], to automatically reference annotated input and output types
106-
- Citations (like {cite:p}`Virshup_2023`) can be included with [sphinxcontrib-bibtex](https://sphinxcontrib-bibtex.readthedocs.io/)
102+
- the [myst][] extension allows to write documentation in markdown/Markedly Structured Text
103+
- [Numpy-style docstrings][numpydoc] (through the [napoloen][numpydoc-napoleon] extension).
104+
- Jupyter notebooks as tutorials through [myst-nb][] (See [Tutorials with myst-nb](#tutorials-with-myst-nb-and-jupyter-notebooks))
105+
- [Sphinx autodoc typehints][], to automatically reference annotated input and output types
106+
- Citations (like {cite:p}`Virshup_2023`) can be included with [sphinxcontrib-bibtex](https://sphinxcontrib-bibtex.readthedocs.io/)
107107

108108
See the [scanpy developer docs](https://scanpy.readthedocs.io/en/latest/dev/documentation.html) for more information
109109
on how to write documentation.
@@ -120,10 +120,10 @@ repository.
120120

121121
#### Hints
122122

123-
- If you refer to objects from other packages, please add an entry to `intersphinx_mapping` in `docs/conf.py`. Only
124-
if you do so can sphinx automatically create a link to the external documentation.
125-
- If building the documentation fails because of a missing link that is outside your control, you can add an entry to
126-
the `nitpick_ignore` list in `docs/conf.py`
123+
- If you refer to objects from other packages, please add an entry to `intersphinx_mapping` in `docs/conf.py`. Only
124+
if you do so can sphinx automatically create a link to the external documentation.
125+
- If building the documentation fails because of a missing link that is outside your control, you can add an entry to
126+
the `nitpick_ignore` list in `docs/conf.py`
127127

128128
#### Building the docs locally
129129

src/spatialdata_plot/pl/basic.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -950,7 +950,8 @@ def show(
950950

951951
if wanted_labels_on_this_cs:
952952
if (table := params_copy.table_name) is not None:
953-
colors = sc.get.obs_df(sdata[table], params_copy.color)
953+
assert isinstance(params_copy.color, str)
954+
colors = sc.get.obs_df(sdata[table], [params_copy.color])
954955
if isinstance(colors[params_copy.color].dtype, pd.CategoricalDtype):
955956
_maybe_set_colors(
956957
source=sdata[table],

src/spatialdata_plot/pl/render.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,8 @@ def _render_points(
453453
)
454454

455455
if col_for_color is not None:
456-
cols = sc.get.obs_df(adata, col_for_color)
456+
assert isinstance(col_for_color, str)
457+
cols = sc.get.obs_df(adata, [col_for_color])
457458
# maybe set color based on type
458459
if isinstance(cols[col_for_color].dtype, pd.CategoricalDtype):
459460
_maybe_set_colors(

0 commit comments

Comments
 (0)