What's Changed
Added
- docs: add Interactive region annotation card to gallery by @timtreis in #689
- Add scanpy-style multi-panel
color=[...]for render_shapes and render_labels by @timtreis in #686 - Add
measure_obs: persist per-cell centroid/area/equivalent diameter into the annotating table by @timtreis in #705 - Fast cell rendering: render_shapes/labels(as_points=True) + axis-aligned extent by @timtreis in #703
- docs(gallery): add rendering-performance tutorial card by @timtreis in #726
- feat(color): PercentileNormalize for percentile-based contrast limits by @timtreis in #725
- fix(shapes,labels): re-add
outlinebool toggle by @timtreis in #750 - fix: full scanpy 1.13 compatibility layer by @timtreis in #760
Changed
- perf(shapes): build matplotlib patches once, share across fill/outline by @timtreis in #691
- perf(points): strip alpha on unique colours, not once per point by @timtreis in #692
- perf(labels): compute np.unique(label) once per render by @timtreis in #693
- perf(images): materialize rasterized image once to avoid per-channel re-warp by @timtreis in #708
- perf(color): extract one aligned column instead of copying the whole table by @timtreis in #709
- fix: render unannotated shapes with na_color instead of dropping them by @timtreis in #711
- perf(shapes): drop the per-render table join when coloring by a table column by @timtreis in #712
- Set panel title/aspect/frameon once per panel, not per render command by @timtreis in #702
- refactor: decompose show() into named stages by @timtreis in #714
- refactor: collapse duplicated orchestration across the render* quartet by @timtreis in #717
- refactor(render_params): RenderParams base class for the 5 *RenderParams by @timtreis in #720
- refactor: split utils.py into _geometry / _datashader / _color / _validate by @timtreis in #715
- refactor: unify color/cmap/norm pipeline — CmapParams methods + single continuous-norm by @timtreis in #721
- refactor(color): ColorSpec - typed color-state boundary by @timtreis in #722
- perf(shapes): faster datashader circle rendering + matplotlib-fidelity fixes by @timtreis in #729
- perf(render_points): drop the AnnData hack + fix the categorical cliff by @timtreis in #730
- perf(render_points): keep categorical colour as codes+palette (memory at scale) by @timtreis in #731
- perf(render_shapes): PathCollection of pre-built Paths (avoid per-shape Patch construction) by @timtreis in #735
- perf(color): map categorical shapes colour by code, not per-row hex parse by @timtreis in #737
- perf(render_images): stream multi-channel composite (avoid O(n_channels) RGBA cube) by @timtreis in #736
- perf(shapes): vectorize datashader polygon scaling by @timtreis in #738
- perf(shapes): vectorize datashader polygon scaling by @timtreis in #740
- refactor: decompose _type_check_params, _convert_shapes, _set_color_source_vec by @timtreis in #741
- docs(gallery): derive the gallery from the notebook sources by @timtreis in #752
- fix(labels): defer float-dtype rejection to spatialdata's model validation by @timtreis in #758
- Update template to v0.8.0 (resolved) by @timtreis in #761
- build(deps): bump the actions-deps group with 4 updates by @dependabot[bot] in #762
Removed
Fixed
- ci: bump codecov-action to v6 to fix signature verification by @timtreis in #704
- test: cap matplotlib<3.11 to stabilize colorbar image baselines by @timtreis in #713
- fix(show): render all coordinate systems for type-distributed elements by @timtreis in #718
- fix(labels): separate per-render categorical legends with distinct palettes by @timtreis in #723
- fix(datashader): handle zero-extent point sets instead of NaN canvas by @timtreis in #728
- fix: align rasterized artists with get_extent by @timtreis in #742
- fix:
pl.show()now displays in a plain Python REPL by @timtreis in #745 - fix(scalebar): accept int for scalebar_dx by @timtreis in #753
- fix: import scanpy default palettes across scanpy versions (1.13 compat) by @timtreis in #759
- fix(labels): restore render float-dtype guard for spatialdata <0.8 by @timtreis in #751
- fix(points): render solid markers at small sizes by @timtreis in #757
New Contributors
- @dependabot[bot] made their first contribution in #762
Full Changelog: v0.4.0...v0.4.1