From bf4432637f4ad03f94aef464cfc5ea07eaedaf10 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Thu, 8 Jun 2023 19:24:59 +0200 Subject: [PATCH 01/12] mvp --- src/spatialdata_plot/pl/render.py | 20 +++++++--- src/spatialdata_plot/pl/utils.py | 61 ++++++++++++++++++++++--------- 2 files changed, 58 insertions(+), 23 deletions(-) diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index bb98705a..b99a2fb5 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -31,6 +31,7 @@ _decorate_axs, _get_colors_for_categorical_obs, _get_linear_colormap, + _make_patch_from_multipolygon, _map_color_seg, _maybe_set_colors, _normalize, @@ -110,11 +111,19 @@ def _get_collection_shape( outline_alpha: Optional[float] = None, **kwargs: Any, ) -> PatchCollection: - """Get collection of shapes.""" - if shapes["geometry"].iloc[0].geom_type == "Polygon": - patches = [Polygon(p.exterior.coords, closed=True) for p in shapes["geometry"]] - elif shapes["geometry"].iloc[0].geom_type == "Point": - patches = [Circle((circ.x, circ.y), radius=r * s) for circ, r in zip(shapes["geometry"], shapes["radius"])] + polygon_df = shapes[shapes["geometry"].apply(lambda geom: geom.geom_type == "Polygon")] + multipolygon_df = shapes[shapes["geometry"].apply(lambda geom: geom.geom_type == "MultiPolygon")] + circle_df = shapes[shapes["geometry"].apply(lambda geom: geom.geom_type == "Point")] + + patches = [] + if len(polygon_df) > 0: + patches += [Polygon(p.exterior.coords, closed=True) for p in polygon_df["geometry"]] + if len(circle_df) > 0: + patches += [ + Circle((circ.x, circ.y), radius=r * s) for circ, r in zip(circle_df["geometry"], circle_df["radius"]) + ] + if len(multipolygon_df) > 0: + patches += [_make_patch_from_multipolygon(mp) for mp in multipolygon_df["geometry"]] cmap = kwargs["cmap"] @@ -160,6 +169,7 @@ def _get_collection_shape( outline_alpha=render_params.outline_alpha # **kwargs, ) + cax = ax.add_collection(_cax) palette = ListedColormap(set(color_vector)) if render_params.palette is None else render_params.palette diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 31f065d7..04bd2b81 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -9,10 +9,13 @@ from types import MappingProxyType from typing import Any, Literal, Optional, Union +import matplotlib.patches as mpatches +import matplotlib.path as mpath import matplotlib.pyplot as plt import multiscale_spatial_image as msi import numpy as np import pandas as pd +import shapely import spatial_image import spatialdata as sd import xarray as xr @@ -305,7 +308,9 @@ def get_point_bb( sdata.shapes[e_id]["geometry"].apply(lambda geom: geom.geom_type == "Point") ] tmp_polygons = sdata.shapes[e_id][ - sdata.shapes[e_id]["geometry"].apply(lambda geom: geom.geom_type == "Polygon") + sdata.shapes[e_id]["geometry"].apply( + lambda geom: geom.geom_type in ["Polygon", "MultiPolygon"] + ) ] if not tmp_points.empty: @@ -321,24 +326,17 @@ def get_point_bb( xmin_br, ymin_br, xmax_br, ymax_br = tmp_points["point_bottomright"].total_bounds y_dims += [min(ymin_tl, ymin_br), max(ymax_tl, ymax_br)] x_dims += [min(xmin_tl, xmin_br), max(xmax_tl, xmax_br)] - y_dims += [min(ymin_tl, ymin_br), max(ymax_tl, ymax_br)] - x_dims += [min(xmin_tl, xmin_br), max(xmax_tl, xmax_br)] if not tmp_polygons.empty: xmin, ymin, xmax, ymax = tmp_polygons.total_bounds y_dims += [ymin, ymax] x_dims += [xmin, xmax] - y_dims += [ymin, ymax] - x_dims += [xmin, xmax] del tmp_points del tmp_polygons - extent[cs_name][e_id] = x_dims + y_dims extent[cs_name][e_id] = x_dims + y_dims - transformations = get_transformation(sdata.shapes[e_id], to_coordinate_system=cs_name) - transformations = _flatten_transformation_sequence(transformations) transformations = get_transformation(sdata.shapes[e_id], to_coordinate_system=cs_name) transformations = _flatten_transformation_sequence(transformations) @@ -358,16 +356,6 @@ def get_point_bb( elif isinstance(t, sd.transformations.transformations.Affine): pass - if has_points and cs_contents.query(f"cs == '{cs_name}'")["has_points"][0]: - for points_key in sdata.points: - for e_id in element_ids: - if points_key == e_id: - tmp = sdata.points[points_key] - xmin = tmp["x"].min().compute() - xmax = tmp["x"].max().compute() - ymin = tmp["y"].min().compute() - ymax = tmp["y"].max().compute() - extent[cs_name][e_id] = [xmin, xmax, ymin, ymax] if has_points and cs_contents.query(f"cs == '{cs_name}'")["has_points"][0]: for points_key in sdata.points: @@ -1137,3 +1125,40 @@ def _robust_transform(element: Any, cs: str) -> Any: raise ValueError("Unable to transform element.") from e return element + + +def _split_multipolygon_into_outer_and_inner(mp: shapely.MultiPolygon): # type: ignore + # https://stackoverflow.com/a/21922058 + if len(mp.geoms) > 1: + raise NotImplementedError("Currently, lists of Polygons are not supported. Only Polygons with holes.") + + geom = mp.geoms[0] + if geom.type == "Polygon": + exterior_coords = geom.exterior.coords[:] + interior_coords = [] + for interior in geom.interiors: + interior_coords += interior.coords[:] + elif geom.type == "MultiPolygon": + exterior_coords = [] + interior_coords = [] + for part in geom: + epc = _split_multipolygon_into_outer_and_inner(part) # Recursive call + exterior_coords += epc["exterior_coords"] + interior_coords += epc["interior_coords"] + else: + raise ValueError("Unhandled geometry type: " + repr(geom.type)) + + return interior_coords, exterior_coords + + +def _make_patch_from_multipolygon(mp: shapely.MultiPolygon) -> mpatches.PathPatch: + # https://matplotlib.org/stable/gallery/shapes_and_collections/donut.html + + inside, outside = _split_multipolygon_into_outer_and_inner(mp) + codes = np.ones(len(inside), dtype=mpath.Path.code_type) * mpath.Path.LINETO + codes[0] = mpath.Path.MOVETO + vertices = np.concatenate((outside, inside[::-1])) + all_codes = np.concatenate((codes, codes)) + path = mpath.Path(vertices, all_codes) + + return mpatches.PathPatch(path) From b75c7436fbbd302f26da536bd5b7d11649b13612 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 10:25:28 +0000 Subject: [PATCH 02/12] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/spatialdata_plot/pl/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 383a5ddf..175babde 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -9,9 +9,9 @@ from types import MappingProxyType from typing import Any, Literal, Optional, Union +import matplotlib import matplotlib.patches as mpatches import matplotlib.path as mpath -import matplotlib import matplotlib.pyplot as plt import multiscale_spatial_image as msi import numpy as np From 6716f753c922824b29949d54cca283f63b23c12a Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Wed, 14 Jun 2023 14:05:50 +0200 Subject: [PATCH 03/12] other multipolygon type works now --- src/spatialdata_plot/pl/render.py | 21 +++++++++-- src/spatialdata_plot/pl/utils.py | 58 ++++++++++++++++++------------- 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index 11a20ee2..719bc04c 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -1,11 +1,14 @@ from __future__ import annotations +import contextlib from collections.abc import Sequence from copy import copy from dataclasses import dataclass from functools import partial +from itertools import chain from typing import Any, Callable, Optional, Union +import geopandas as gpd import matplotlib import numpy as np import pandas as pd @@ -119,9 +122,15 @@ def _get_collection_shape( outline_alpha: None | float = None, **kwargs: Any, ) -> PatchCollection: - polygon_df = shapes[shapes["geometry"].apply(lambda geom: geom.geom_type == "Polygon")] - multipolygon_df = shapes[shapes["geometry"].apply(lambda geom: geom.geom_type == "MultiPolygon")] - circle_df = shapes[shapes["geometry"].apply(lambda geom: geom.geom_type == "Point")] + polygon_df = shapes[ + shapes["geometry"].apply(lambda geom: geom.geom_type == "Polygon") # type: ignore[call-overload] + ] + multipolygon_df = shapes[ + shapes["geometry"].apply(lambda geom: geom.geom_type == "MultiPolygon") # type: ignore[call-overload] + ] + circle_df = shapes[ + shapes["geometry"].apply(lambda geom: geom.geom_type == "Point") # type: ignore[call-overload] + ] patches = [] if len(polygon_df) > 0: @@ -133,6 +142,10 @@ def _get_collection_shape( if len(multipolygon_df) > 0: patches += [_make_patch_from_multipolygon(mp) for mp in multipolygon_df["geometry"]] + # flatten list since multipolygons cause a nested list + with contextlib.suppress(Exception): + patches = list(chain.from_iterable([x] if not isinstance(x, list) else x for x in patches)) + cmap = kwargs["cmap"] try: @@ -169,6 +182,8 @@ def _get_collection_shape( if len(color_vector) == 0: color_vector = [render_params.cmap_params.na_color] + shapes = pd.concat(shapes, ignore_index=True) + shapes = gpd.GeoDataFrame(shapes, geometry="geometry") _cax = _get_collection_shape( shapes=shapes, s=render_params.size, diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 9e229900..41719a67 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -1134,24 +1134,22 @@ def _robust_transform(element: Any, cs: str) -> Any: def _split_multipolygon_into_outer_and_inner(mp: shapely.MultiPolygon): # type: ignore # https://stackoverflow.com/a/21922058 - if len(mp.geoms) > 1: - raise NotImplementedError("Currently, lists of Polygons are not supported. Only Polygons with holes.") - - geom = mp.geoms[0] - if geom.type == "Polygon": - exterior_coords = geom.exterior.coords[:] - interior_coords = [] - for interior in geom.interiors: - interior_coords += interior.coords[:] - elif geom.type == "MultiPolygon": - exterior_coords = [] - interior_coords = [] - for part in geom: - epc = _split_multipolygon_into_outer_and_inner(part) # Recursive call - exterior_coords += epc["exterior_coords"] - interior_coords += epc["interior_coords"] - else: - raise ValueError("Unhandled geometry type: " + repr(geom.type)) + + for geom in mp.geoms: + if geom.geom_type == "Polygon": + exterior_coords = geom.exterior.coords[:] + interior_coords = [] + for interior in geom.interiors: + interior_coords += interior.coords[:] + elif geom.geom_type == "MultiPolygon": + exterior_coords = [] + interior_coords = [] + for part in geom: + epc = _split_multipolygon_into_outer_and_inner(part) # Recursive call + exterior_coords += epc["exterior_coords"] + interior_coords += epc["interior_coords"] + else: + raise ValueError("Unhandled geometry type: " + repr(geom.type)) return interior_coords, exterior_coords @@ -1159,11 +1157,21 @@ def _split_multipolygon_into_outer_and_inner(mp: shapely.MultiPolygon): # type: def _make_patch_from_multipolygon(mp: shapely.MultiPolygon) -> mpatches.PathPatch: # https://matplotlib.org/stable/gallery/shapes_and_collections/donut.html - inside, outside = _split_multipolygon_into_outer_and_inner(mp) - codes = np.ones(len(inside), dtype=mpath.Path.code_type) * mpath.Path.LINETO - codes[0] = mpath.Path.MOVETO - vertices = np.concatenate((outside, inside[::-1])) - all_codes = np.concatenate((codes, codes)) - path = mpath.Path(vertices, all_codes) + patches = [] + for geom in mp.geoms: + if len(geom.interiors) == 0: + # polygon has no holes + patches += [mpatches.Polygon(geom.exterior.coords, closed=True)] + else: + inside, outside = _split_multipolygon_into_outer_and_inner(mp) + if len(inside) > 0: + codes = np.ones(len(inside), dtype=mpath.Path.code_type) * mpath.Path.LINETO + codes[0] = mpath.Path.MOVETO + all_codes = np.concatenate((codes, codes)) + vertices = np.concatenate((outside, inside[::-1])) + else: + all_codes = [] + vertices = np.concatenate(outside) + patches += [mpatches.PathPatch(mpath.Path(vertices, all_codes))] - return mpatches.PathPatch(path) + return patches From 0aa26cd59d964b0eacf91d488a4ffaf06994bf55 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Wed, 14 Jun 2023 14:54:48 +0200 Subject: [PATCH 04/12] added test --- ...ion_respects_element_selection_circles.png | Bin 0 -> 5840 bytes ...element_selection_circles_and_polygons.png | Bin 0 -> 6307 bytes ...on_respects_element_selection_polygons.png | Bin 0 -> 5636 bytes .../Extent_extent_of_img_full_canvas.png | Bin 0 -> 36646 bytes ..._of_img_is_correct_after_spatial_query.png | Bin 0 -> 28747 bytes ...xtent_of_partial_canvas_on_full_canvas.png | Bin 0 -> 38077 bytes ...Extent_extent_of_points_partial_canvas.png | Bin 0 -> 7621 bytes ...olygons_is_correct_after_spatial_query.png | Bin 0 -> 4807 bytes ..._on_img_is_correct_after_spatial_query.png | Bin 0 -> 29807 bytes tests/_images/Labels_can_render_labels.png | Bin 0 -> 14410 bytes tests/_images/Points_can_render_points.png | Bin 0 -> 7621 bytes tests/_images/Shapes_can_render_circles.png | Bin 6307 -> 5840 bytes .../Shapes_can_render_multipolygons.png | Bin 0 -> 2077 bytes tests/_images/Shapes_can_render_polygons.png | Bin 6307 -> 5636 bytes .../_images/Show_pad_extent_adds_padding.png | Bin 0 -> 21900 bytes tests/pl/test_render_shapes.py | 23 ++++++++++++++++++ 16 files changed, 23 insertions(+) create mode 100644 tests/_images/Extent_extent_calculation_respects_element_selection_circles.png create mode 100644 tests/_images/Extent_extent_calculation_respects_element_selection_circles_and_polygons.png create mode 100644 tests/_images/Extent_extent_calculation_respects_element_selection_polygons.png create mode 100644 tests/_images/Extent_extent_of_img_full_canvas.png create mode 100644 tests/_images/Extent_extent_of_img_is_correct_after_spatial_query.png create mode 100644 tests/_images/Extent_extent_of_partial_canvas_on_full_canvas.png create mode 100644 tests/_images/Extent_extent_of_points_partial_canvas.png create mode 100644 tests/_images/Extent_extent_of_polygons_is_correct_after_spatial_query.png create mode 100644 tests/_images/Extent_extent_of_polygons_on_img_is_correct_after_spatial_query.png create mode 100644 tests/_images/Labels_can_render_labels.png create mode 100644 tests/_images/Points_can_render_points.png create mode 100644 tests/_images/Shapes_can_render_multipolygons.png create mode 100644 tests/_images/Show_pad_extent_adds_padding.png diff --git a/tests/_images/Extent_extent_calculation_respects_element_selection_circles.png b/tests/_images/Extent_extent_calculation_respects_element_selection_circles.png new file mode 100644 index 0000000000000000000000000000000000000000..33ab49e76fac1d586cced69db0a13e9fa7bc50c5 GIT binary patch literal 5840 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 literal 0 HcmV?d00001 diff --git a/tests/_images/Extent_extent_calculation_respects_element_selection_polygons.png b/tests/_images/Extent_extent_calculation_respects_element_selection_polygons.png new file mode 100644 index 0000000000000000000000000000000000000000..1576502827a67492d4d687cd50c6df5afefcc7a8 GIT binary patch literal 5636 zcmZ`-by$;M*d8%J8X2J=A&sL$z)_=7x;tcacc?T7C`f}e{6>#10SWm5;%JeS5(%Y6 zN)W!oSATuqb)D_qyX)-iy!UfI=f0mOPFqujjQB1w1Og#bQ&rRj*TS0@5dnBl7<1qQ z7fD|wV_!WFd*1*XZxlqs#@Ex;!`Icxmc<|C?c?O(F2XO)F9K(A^!4@hkrEJa``-!t z9^MWDW5->`V3Av%swO@V2m#m43r9nLb`S!g@lsQi*AL9y%`)*nOhVv<@+VE5;#+@+{+lI(tD3Qdla2O@3B3@1jR*vtK@J1Vt2Lbyfhb}ZkhEZ0^ z*|_jT5z4(*M3>IJZE>29+dT}-zO%ev^h?y;)nVtA^xF5UeA7WD=8!9y(gY&~9cbF-tHTYmj43#}9d&rj~ioUPyyML-~1 zySx3Pd5~0f8;($Tg2Z88Tq+Ra+zQ!0nfb_VE_t^=rHqTfpz-bjiLLO~#!tO;R*k7FN z2A<40tR4rWCj0^do^FojmDkn|-V6AOQ}#J-`Naj9w6yfiW~VV`6U)mPfw4Yi795pUT-@k zjYD1ZZvR^`7fMosFJ@7s6ckVG>=ZFrRL>D2FyH9%nGVcr@2lh!P0jnss%ignqG8S* z`P}KdY;0^`4T8dA!lpS_<5u^3d+po&&HOxlUW||)_f~;3^9+>N)n!ndIsds((jZ>J z7-3}5Wx^HGb%tTR?)gx41XR9fY6^Bg`D17I$nY==jF^>@sAtvF(fS?-T?0fb9}#!D z6hfg{M*X6j8IDD!upc0jy1HZ-rGsIy>{uiR;XBze3989-;YQID@Mn@RB@xmlpzXxh+0xa+*CfEc%{v2iuIdFzQ-yX0 zY=vfB#TUu@otHm1o#Jf}9bj6QK3IkRjrNpyRawa!_}>_sX3FDNK_Eco^ow3q-m!q zDxPg~9nn#-Mm zupq`BB;Fk!9sRI*^uu3Bm)Mu1=bh!gDV#Q;Gqq@gOr8DquklKD8DlFeilo7kS%R|9 zJR~8k`0@aN@`?%_-(7T=JAM{++rY@Eq_mX4u*x9aQ%;H~m&r7B=%3;lA=1c!fq`OL zV)s@C`^Gz&0#=p>@8DQnoQza+%Q5@L-tFTLAZvpIlv3C|8M!EG&p$}afv7n;ISswE zqETm|3}aU#ibe(%(8VdT#M_!6RfFX|Yh{mYf0>%<**@m~X^&?V)7X^R;lEi#X;^I> zo{^EERIB-!N%Zg2k5E>8IQGNMtiQZa4g9RpnVfC1TurV{OM%MD%J_DBDgBfaZ|9w- zrF}fk(E;=^@;*Ky$|@>HqYo<}k3X8%f|PJ}aalbK+~}W70|D+i>g;@}nyFG5j$KCz z((6B0au%c?pPY;kaTxu0_^*o^XX=VX&3zvt60|FB?)EW#OmZuh_})CbT1xEnv!ay# zmD7t=|BlDB1W5r= zKBY7{i|5pPudBa$^=g>J8_%dqL@h)^)cBKPHIzAQ*8?i zi-yxS+Jydy^an=YfXW;hZbVUnIP;&2Vp7o1*gl(AiHXJS?RRIaLZzR{EEk84pm_xW zDjzBhsy^{{z1v@$oJ{dEQd0X`H>qP0mcqXJA)15|AIHtj?H~|QNydhzwARodGc_|4 z(=co{#W=dV=Re$h!hV~^Os5QH0L^;B*?WX|Cd2&Iy|q#eH;VELbj!cvh!d7Z-LaSm zND-9O2(JnkTURi^c{^f1H8quHcg(GpQu$y>jwMWvrLgLCD9{~i!K_1LZWwRiW@(DH zK^VF-+qwU2(o5pK=HB+tp8(GF>oVO6XzM<2b}lNr`|3~CrP9uFH?!4?bB-6+e*-)j zW2Hk*3X6)0s$+OH?tYA&b5(x)`0+#s-};BO!;dtfJ?S=WH8q+~tJD>y8vsC>Pqeg3 z-o3j6QnhYjm!6)!Ct&$`tnBqAH6b};&w@v{g`q-Y|0iPB_w!Rv&!384zK~^C1Csu- z-}dF;TKn}X>}DOVf@il~W@?mxy!!9VhEsECehgpp&E7Eoq(e7+^lZXME@yP81d~cYz(e=<$A(}1W-PpUgDfoW z;mf}vYdUT93QLpIvJh%cGVeC@uXOge=A+p4%Xx z`kiUT%ccb+QZT(?k`D%s(%PAvMnto21rZJ}SufaN2^x(WDs9|8_CXu{@Cgy-Mc;p+ zu8t_|Ta|NhsdD$2)K#LyfA#t`3S*~_RQigEMikC$V`kIcIoQ;01M0BE-!GnU)cK6J z7$S#M9i=4g6LfTRlzaYMn#L-dHOku77CAccBvSj8LI5W zdk5$X*1#G_o+g)Jjk#KX85LseskgWAz7O$n1Pz;9CKg?_cY=LwCmeTpcnCc$A)zU( zvAD&GAHmYIdDQFP`Z>Kud6=vft|;Y%{PBLW`4MYWVMT=+T}V5Y21x|G15H^y&E3R_ z<{NaSFSVcYTXw#56g3@pA-*-ZWf}%^Qw#VbkcPBWfT|9C+SzfP;3zr_H1{H)reQ%b zO*q0F#_}zu#L|N0dF9jz;uMiOZ79~XQM?KWk8m-!t*h&kbYvjf!f9P%1<*M%KcC4M zV~F^(RRTyJ*0&l4u+Y+?AZJ39J6Q;#oBq+|0hFoI4J9*=yEkB44>jY%;(nJP2MQcH zWcML2U@2~I&)s#o>)x33DWkHo@~>&Ai=Vj*hc-`(mX_97M?ivGv@ig*nH%n6Vh>#E z{bVAh7iTt|=NmZf~Wb$-$Bzm|M$d-8TQ4B~!#6b@pq-OeN z691+bCOzKL&B25g*sFb}kot@L2$sUiN@vSos?%$xLHUEglLF&<_>nEiIxvu4pz{FN zoS*K-X`!$gxqiKApQ6^2n7Rr`CKVmOId^;5GokMb86~*poaSB6O!nGL-EHfQN6$II{BX*KEoxahg&G^< z88KGav1)-n&1>b}1~{@v+l0YV`F?VB>~lRFei7iqz`zZM*gH6Qo&Q>IXyO|+s8)ow zJrTP5y20pskmX4{TH-mZ?RLnk!L_4Ag%aFSurHq6bjhlAOKJ!DVQJMM8~fG{dv^U5U`oKwY(-KBM1y1c&!1qRTy=0W&j~3&!U=j(0$@0b zTUu!26mj9$2$YGEWioL8yblbk!jl;_VW9$!B{n}rs)w)G4%&(9hUSL+9v z`ktRIauHH8FfbhUQOMeLQej9&$(sN28dlMK`SRtClDfCl^!PYsL@&z?i$T>O8Bh(t zNMRqcm}r)&NpBFfrsrH^?5;*-pMLeBkhwfiV3hR6CnF;nV~F$y#*!@^HmpFYFm^;Xyl;AQsof3Fv=9x9-v?oeoVoU#GW_}1{Zn) z?e-v|nTMF6l2ZdmgLM*xb|6fC4T=^f&5mzY`QC`02CYXjx3*(~io*nKy%&#B(siw0wLUeuMMPE_9HUmIZfgU}s|^bzWW`N=RMn`)w9aln@fyCgDhL zk3)OgT9P8fBwibbUrq)`Jw-po;MzL^;Qs3tWug3!ek3%D5cx6Uc~al1=a43yDY-Vz zhJ4CD(9OUK{dn@egfL=33KFtzr!7Hqgnn3%Hm_W2+)1ziEpHEko2qcgE@Eu+L8RDY z>i@jA2F`oJ5&qxzaCYEVGLB)M@!sW-qc>V%q$@M8Ol!j*3Rh0$&y<|#cvxSSkY zLI$UPnB+(C%i#Bx#&BA)YLj+5B5jzG>(@3a1qFrKCMW9l_V)2FU!aL=o(C)Ph>M-Z zz{|tIn;H|d!^bc~JZ@Xxvv%lcH!{hg5cZ>C*iked)J9;fubzEm|83;L@dyvTB?x@$ z3CA;?GZU|&u@=;5LAUxqC7FLu3cx{1(^-rn*Kuaa~_2I^`* z^tx}5IrJ59qfo$S265M(voneOpp83GNY>vcC-#6+)6g+cepw6l?4LR?)|tbb_|JHK zwj=Ho>zd3Qt_|YY#q01*Dp*N+eB0XM#+UB_Ca|pS48dSJTSJR(cwS?;RV_uB!p=%h z%CG(`EgD22e9^s3X%i*aZ2k+tkep1_%%6!fb_5aLBu6W!up7uE(Y916Rk&V*cErT= zG=ZEFPK`;UGUoBf+V3BqA==aVQO+ny7n=^#v`;53E#f8umA3@xNiz@#y?ChRyTTR+ zm1YCMXkF6wDlSCOFLsdX(%=X``}+bYfe+ z0KW;|<<-SLXgh?Q>?G%e{e)_mic;r+{8k+;kkuk${oZx4$9Cf=Sfkzm=l+KI#aTE4 z^t%)(@r9+OHSz<$-Qv^88}#V@t6W-I`tkQ~Q71Pyj*!zmjws5>#YGLx0vQc)w|Pad zQj+Wyi$~{SOh&0a3Uq0{gXS0)mu4>a!fDMTiZ-t`Wr!RwJU1sq;~Z(Buqiaa*LP*A zLT~Hm&kvxB$5ZBxb{lIgs1Y-5cAU0g6l6*&>F8i+T?&2x$mj{WQxK!m!q1op0n5(v z4(WN&p2LrnXME&O3i@~1@P?+{;3X~DXJ>+4SASfd9gRGkZFVu5>k3%pLt2LHid~+q zB^kdD76Ucc%5gBLm4GgKcnA;>5+0s!7GNcTO~o3db;N%F#$$14 literal 0 HcmV?d00001 diff --git a/tests/_images/Extent_extent_of_img_full_canvas.png b/tests/_images/Extent_extent_of_img_full_canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..4daa738aa011a0cbb4a7d0c687eae32d72f49c2f GIT binary patch literal 36646 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 literal 0 HcmV?d00001 diff --git a/tests/_images/Extent_extent_of_points_partial_canvas.png b/tests/_images/Extent_extent_of_points_partial_canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..c313aaefe1100a4b27bb9b2aeafdbbbc51fc0719 GIT binary patch literal 7621 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 literal 0 HcmV?d00001 diff --git a/tests/_images/Extent_extent_of_polygons_on_img_is_correct_after_spatial_query.png b/tests/_images/Extent_extent_of_polygons_on_img_is_correct_after_spatial_query.png new file mode 100644 index 0000000000000000000000000000000000000000..79875a8f27977c43111b9cf609d7cedee5d76524 GIT binary patch literal 29807 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 diff --git a/tests/_images/Shapes_can_render_multipolygons.png b/tests/_images/Shapes_can_render_multipolygons.png new file mode 100644 index 0000000000000000000000000000000000000000..f123c33ef1dca157b8ff5ed8a6278c9e96234f39 GIT binary patch literal 2077 zcmdUwdpy(s9>>2730Z!K+>?ctxf^0GlPK5JiHVT8#B6MsOQ`e9%C%B0W-$&rlFM8> zY;+^Fk(4afjLL|g&HX2S&id#4fBrk?kJsn@$LI5S{qcD}U+?!#KcAEP&8RD!0*k*W4nc&Uj*^25tPqU1gtCort_8 z>*Dq_=E7YS%&Ek_W18;n+R2Ee>1o_-5uC9xiPwpH$b0i8=}W4R$11hNhmJQ9q&g8h(0M}1R$la4vIVx>*R?hE{N~Pcb;>A?2m4(H%{{DV+@$Sd=xKC3l z-E7on)4`$8zNRT|cWPJGj(xe0VR}YJ;;O*Eps1*-rbap~Ep42RmcM-YvT*s^=?h&r z2}A`rBqXE@KdYEaBJoAUcOO2yWNJe1=tz)h)zu)dj)QY_w4p0)KQOhvI1z)vyb^o! zQ@YKqt)}yiBC~+Q30jzZs@xJ-KwrP-!^00%jl^v0E^u1+0K&B&=NBeA zhwIy)FKrxFSBUsA_T)a>&e5@OWW+!IbKBtEiH$!q#pZ#nQQq%+fII!{uOj09n{Kx% zDzKdLe8>ELkVD4$u`&wfHkDdv89fx(VdRMs0rK+lA|W679c3Ur=ho(T(Ef9gd$la- zMXp+SE63}&aM$T&M9XF{&fQI4i8VZIsJ*%8?=F#%k?PEyi??YN{~Dgn??vr29mwj^ zw23#Ps|1|TSIXS|i;FYhQWLLg!&P{L?!Oi^bA|!__z(&fb}4VPWLxBauj1DM=$^a2ImtRpfvyeV%; z3))D&+96OqO3hWOhk#az4z`KYQu9B4nDChF`2bg4L}uS$iQ&lj_zg{XLZHR$&y6Mj z;NX1x>=3QDmv_hRsuS-(Lw!Ac0S>>iy{QBv%h&l<^gjvioSr$Y14>Cw=1;%M7cr`z zeC{bvJS7+?))fc@IiqtgX-LwsQha*4hPJkL^Tc8oVeYr}B_4LL2ZO=fXZB^R&8ylZ zOx}pG$_wdEc{M=Jl-lNe8HqyKLL$*Q=gytO*;8Y%*a6YZfJtdO-MWzT+CC z;#xrLlAxo*MnO?g9KxBA>XTjByUaPfjHJYej~{83l>iB>YjXtw5SPF1&2h@kn7zm& zn2mN|CdA|PckytpVlokk#!)lZnqT_=STL1-I})K782gXEnYW8qHQ;%|$F0#d?ApHp DM^c|H literal 0 HcmV?d00001 diff --git a/tests/_images/Shapes_can_render_polygons.png b/tests/_images/Shapes_can_render_polygons.png index 1b47647ff5ab3658c7cf75f7113ee7b86c3e070a..1576502827a67492d4d687cd50c6df5afefcc7a8 100644 GIT binary patch literal 5636 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 literal 6307 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 diff --git a/tests/_images/Show_pad_extent_adds_padding.png b/tests/_images/Show_pad_extent_adds_padding.png new file mode 100644 index 0000000000000000000000000000000000000000..a605df999df29eb8bb1ac7842d3ff38dc2846619 GIT binary patch literal 21900 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 literal 0 HcmV?d00001 diff --git a/tests/pl/test_render_shapes.py b/tests/pl/test_render_shapes.py index de3b7cef..3f394c59 100644 --- a/tests/pl/test_render_shapes.py +++ b/tests/pl/test_render_shapes.py @@ -2,6 +2,9 @@ import scanpy as sc import spatialdata_plot # noqa: F401 from spatialdata import SpatialData +from spatialdata.models import ShapesModel +from shapely.geometry import Polygon, MultiPolygon +import geopandas as gpd from tests.conftest import PlotTester, PlotTesterMeta @@ -24,3 +27,23 @@ def test_plot_can_render_circles(self, sdata_blobs: SpatialData): def test_plot_can_render_polygons(self, sdata_blobs: SpatialData): sdata_blobs.pl.render_shapes(element="blobs_polygons").pl.show() + + def test_plot_can_render_multipolygons(self): + + def _make_multi(): + hole = MultiPolygon([( + ((0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)), + [((0.2,0.2), (0.2,0.8), (0.8,0.8), (0.8,0.2))] + )]) + overlap = MultiPolygon([ + Polygon([(2.0, 0.0), (2.0, 0.8), (2.8, 0.8), (2.8, 0.0)]), + Polygon([(2.2, 0.2), (2.2, 1.0), (3.0, 1.0), (3.0, 0.2)]) + ]) + poly = Polygon([(4.0, 0.0), (4.0, 1.0), (5.0, 1.0), (5.0, 0.0)]) + polygon_series = gpd.GeoSeries([hole, overlap, poly]) + cell_polygon_table = gpd.GeoDataFrame(geometry=polygon_series) + sd_polygons = ShapesModel.parse(cell_polygon_table) + return sd_polygons + + sdata = SpatialData(shapes={"p": _make_multi()}) + sdata.pl.render_shapes(outline=True, fill_alpha=0.3).pl.show() From 39ab5ddf05f8095422411c7b3c6d37c0683e1947 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 12:55:03 +0000 Subject: [PATCH 05/12] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/pl/test_render_shapes.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/pl/test_render_shapes.py b/tests/pl/test_render_shapes.py index 3f394c59..1f571841 100644 --- a/tests/pl/test_render_shapes.py +++ b/tests/pl/test_render_shapes.py @@ -1,10 +1,10 @@ +import geopandas as gpd import matplotlib import scanpy as sc import spatialdata_plot # noqa: F401 +from shapely.geometry import MultiPolygon, Polygon from spatialdata import SpatialData from spatialdata.models import ShapesModel -from shapely.geometry import Polygon, MultiPolygon -import geopandas as gpd from tests.conftest import PlotTester, PlotTesterMeta @@ -29,16 +29,16 @@ def test_plot_can_render_polygons(self, sdata_blobs: SpatialData): sdata_blobs.pl.render_shapes(element="blobs_polygons").pl.show() def test_plot_can_render_multipolygons(self): - def _make_multi(): - hole = MultiPolygon([( - ((0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)), - [((0.2,0.2), (0.2,0.8), (0.8,0.8), (0.8,0.2))] - )]) - overlap = MultiPolygon([ - Polygon([(2.0, 0.0), (2.0, 0.8), (2.8, 0.8), (2.8, 0.0)]), - Polygon([(2.2, 0.2), (2.2, 1.0), (3.0, 1.0), (3.0, 0.2)]) - ]) + hole = MultiPolygon( + [(((0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)), [((0.2, 0.2), (0.2, 0.8), (0.8, 0.8), (0.8, 0.2))])] + ) + overlap = MultiPolygon( + [ + Polygon([(2.0, 0.0), (2.0, 0.8), (2.8, 0.8), (2.8, 0.0)]), + Polygon([(2.2, 0.2), (2.2, 1.0), (3.0, 1.0), (3.0, 0.2)]), + ] + ) poly = Polygon([(4.0, 0.0), (4.0, 1.0), (5.0, 1.0), (5.0, 0.0)]) polygon_series = gpd.GeoSeries([hole, overlap, poly]) cell_polygon_table = gpd.GeoDataFrame(geometry=polygon_series) From 6bf70a6d4c75d485649dbc94f4ced31307a4aa83 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Wed, 14 Jun 2023 14:57:25 +0200 Subject: [PATCH 06/12] ruff fix --- tests/pl/test_render_shapes.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/tests/pl/test_render_shapes.py b/tests/pl/test_render_shapes.py index 3f394c59..dad62f1f 100644 --- a/tests/pl/test_render_shapes.py +++ b/tests/pl/test_render_shapes.py @@ -1,10 +1,10 @@ +import geopandas as gpd import matplotlib import scanpy as sc import spatialdata_plot # noqa: F401 +from shapely.geometry import MultiPolygon, Polygon from spatialdata import SpatialData from spatialdata.models import ShapesModel -from shapely.geometry import Polygon, MultiPolygon -import geopandas as gpd from tests.conftest import PlotTester, PlotTesterMeta @@ -29,21 +29,20 @@ def test_plot_can_render_polygons(self, sdata_blobs: SpatialData): sdata_blobs.pl.render_shapes(element="blobs_polygons").pl.show() def test_plot_can_render_multipolygons(self): - def _make_multi(): - hole = MultiPolygon([( - ((0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)), - [((0.2,0.2), (0.2,0.8), (0.8,0.8), (0.8,0.2))] - )]) - overlap = MultiPolygon([ - Polygon([(2.0, 0.0), (2.0, 0.8), (2.8, 0.8), (2.8, 0.0)]), - Polygon([(2.2, 0.2), (2.2, 1.0), (3.0, 1.0), (3.0, 0.2)]) - ]) + hole = MultiPolygon( + [(((0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)), [((0.2, 0.2), (0.2, 0.8), (0.8, 0.8), (0.8, 0.2))])] + ) + overlap = MultiPolygon( + [ + Polygon([(2.0, 0.0), (2.0, 0.8), (2.8, 0.8), (2.8, 0.0)]), + Polygon([(2.2, 0.2), (2.2, 1.0), (3.0, 1.0), (3.0, 0.2)]), + ] + ) poly = Polygon([(4.0, 0.0), (4.0, 1.0), (5.0, 1.0), (5.0, 0.0)]) polygon_series = gpd.GeoSeries([hole, overlap, poly]) cell_polygon_table = gpd.GeoDataFrame(geometry=polygon_series) - sd_polygons = ShapesModel.parse(cell_polygon_table) - return sd_polygons + return ShapesModel.parse(cell_polygon_table) sdata = SpatialData(shapes={"p": _make_multi()}) sdata.pl.render_shapes(outline=True, fill_alpha=0.3).pl.show() From c89d4e29683946b7ac89cfa4f583ca22b9de2812 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 10:10:30 +0000 Subject: [PATCH 07/12] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/spatialdata_plot/pl/render.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index 6ef1d8d9..a0151e3e 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -123,12 +123,11 @@ def _get_collection_shape( outline_alpha: None | float = None, **kwargs: Any, ) -> PatchCollection: - print(shapes) patches = [] # remove empty points/polygons shapes = shapes[shapes["geometry"].apply(lambda geom: not geom.is_empty)] - + polygon_df = shapes[ shapes["geometry"].apply(lambda geom: geom.geom_type == "Polygon") # type: ignore[call-overload] ] @@ -138,7 +137,7 @@ def _get_collection_shape( circle_df = shapes[ shapes["geometry"].apply(lambda geom: geom.geom_type == "Point") # type: ignore[call-overload] ] - + if len(polygon_df) > 0: patches += [Polygon(p.exterior.coords, closed=True) for p in polygon_df["geometry"]] if len(circle_df) > 0: From 79c9e364370d4ac7372394cd0fd94ff41ed811e0 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Wed, 16 Aug 2023 15:13:40 +0200 Subject: [PATCH 08/12] fixed --- src/spatialdata_plot/pl/render.py | 100 +++++++++++++++++++----------- src/spatialdata_plot/pl/utils.py | 9 ++- tests/pl/test_render_shapes.py | 21 +++++-- 3 files changed, 88 insertions(+), 42 deletions(-) diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index a0151e3e..9a9effb2 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -1,11 +1,9 @@ from __future__ import annotations -import contextlib from collections.abc import Sequence from copy import copy from dataclasses import dataclass from functools import partial -from itertools import chain from typing import Any, Callable import geopandas as gpd @@ -123,34 +121,22 @@ def _get_collection_shape( outline_alpha: None | float = None, **kwargs: Any, ) -> PatchCollection: - print(shapes) - patches = [] - # remove empty points/polygons - shapes = shapes[shapes["geometry"].apply(lambda geom: not geom.is_empty)] - - polygon_df = shapes[ - shapes["geometry"].apply(lambda geom: geom.geom_type == "Polygon") # type: ignore[call-overload] - ] - multipolygon_df = shapes[ - shapes["geometry"].apply(lambda geom: geom.geom_type == "MultiPolygon") # type: ignore[call-overload] - ] - circle_df = shapes[ - shapes["geometry"].apply(lambda geom: geom.geom_type == "Point") # type: ignore[call-overload] - ] - - if len(polygon_df) > 0: - patches += [Polygon(p.exterior.coords, closed=True) for p in polygon_df["geometry"]] - if len(circle_df) > 0: - patches += [ - Circle((circ.x, circ.y), radius=r * s) for circ, r in zip(circle_df["geometry"], circle_df["radius"]) - ] - if len(multipolygon_df) > 0: - patches += [_make_patch_from_multipolygon(mp) for mp in multipolygon_df["geometry"]] - - # flatten list since multipolygons cause a nested list - with contextlib.suppress(Exception): - patches = list(chain.from_iterable([x] if not isinstance(x, list) else x for x in patches)) - + """ + Get a PatchCollection for rendering given geometries with specified colors and outlines. + + Args: + - shapes (list[GeoDataFrame]): List of geometrical shapes. + - c: Color parameter. + - s (float): Size of the shape. + - norm: Normalization for the color map. + - fill_alpha (float, optional): Opacity for the fill color. + - outline_alpha (float, optional): Opacity for the outline. + - **kwargs: Additional keyword arguments. + + Returns + ------- + - PatchCollection: Collection of patches for rendering. + """ cmap = kwargs["cmap"] try: @@ -169,16 +155,60 @@ def _get_collection_shape( if render_params.outline_params.outline: outline_c = ColorConverter().to_rgba_array(render_params.outline_params.outline_color) outline_c[..., -1] = render_params.outline_alpha + outline_c = outline_c.tolist() else: - outline_c = None + outline_c = [None] + outline_c = outline_c * fill_c.shape[0] + + shapes_df = pd.DataFrame(shapes, copy=True) + + # remove empty points/polygons + shapes_df = shapes_df[shapes_df["geometry"].apply(lambda geom: not geom.is_empty)] + + rows = [] + + def assign_fill_and_outline_to_row( + shapes: list[GeoDataFrame], fill_c: list[Any], outline_c: list[Any], row: pd.Series, idx: int + ) -> None: + if len(shapes) > 1 and len(fill_c) == 1: + row["fill_c"] = fill_c + row["outline_c"] = outline_c + else: + row["fill_c"] = fill_c[idx] + row["outline_c"] = outline_c[idx] + + # Match colors to the geometry, potentially expanding the row in case of + # multipolygons + for idx, row in shapes_df.iterrows(): + geom = row["geometry"] + if geom.geom_type == "Polygon": + row = row.to_dict() + row["geometry"] = Polygon(geom.exterior.coords, closed=True) + assign_fill_and_outline_to_row(shapes, fill_c, outline_c, row, idx) + rows.append(row) + + elif geom.geom_type == "MultiPolygon": + mp = _make_patch_from_multipolygon(geom) + for _, m in enumerate(mp): + mp_copy = row.to_dict() + mp_copy["geometry"] = m + assign_fill_and_outline_to_row(shapes, fill_c, outline_c, mp_copy, idx) + rows.append(mp_copy) + + elif geom.geom_type == "Point": + row = row.to_dict() + row["geometry"] = Circle((geom.x, geom.y), radius=row["radius"]) + assign_fill_and_outline_to_row(shapes, fill_c, outline_c, row, idx) + rows.append(row) + + patches = pd.DataFrame(rows) return PatchCollection( - patches, + patches["geometry"].values.tolist(), snap=False, - # zorder=4, lw=render_params.outline_params.linewidth, - facecolor=fill_c, - edgecolor=outline_c, + facecolor=patches["fill_c"], + edgecolor=None if all(outline is None for outline in outline_c) else outline_c, **kwargs, ) diff --git a/src/spatialdata_plot/pl/utils.py b/src/spatialdata_plot/pl/utils.py index 3cdb2aeb..08cd2f1c 100644 --- a/src/spatialdata_plot/pl/utils.py +++ b/src/spatialdata_plot/pl/utils.py @@ -302,7 +302,7 @@ def _get_extent_after_transformations(element: Any, cs_name: str) -> Sequence[in if shapes_key == e_id: def get_point_bb( - point: Point, radius: int, method: Literal["topleft", "bottomright"], buffer: int = 1 + point: Point, radius: int, method: Literal["topleft", "bottomright"], buffer: int = 0 ) -> Point: x, y = point.coords[0] if method == "topleft": @@ -349,7 +349,12 @@ def get_point_bb( del tmp_points del tmp_polygons - extent[cs_name][e_id] = x_dims + y_dims + xmin = np.min(x_dims) + xmax = np.max(x_dims) + ymin = np.min(y_dims) + ymax = np.max(y_dims) + + extent[cs_name][e_id] = [xmin, xmax, ymin, ymax] transformations = get_transformation(sdata.shapes[e_id], to_coordinate_system=cs_name) transformations = _flatten_transformation_sequence(transformations) diff --git a/tests/pl/test_render_shapes.py b/tests/pl/test_render_shapes.py index d19b9107..53aad58e 100644 --- a/tests/pl/test_render_shapes.py +++ b/tests/pl/test_render_shapes.py @@ -1,10 +1,12 @@ +import anndata import geopandas as gpd import matplotlib +import pandas as pd import scanpy as sc import spatialdata_plot # noqa: F401 -from shapely.geometry import MultiPolygon, Polygon +from shapely.geometry import MultiPolygon, Point, Polygon from spatialdata import SpatialData -from spatialdata.models import ShapesModel +from spatialdata.models import ShapesModel, TableModel from tests.conftest import PlotTester, PlotTesterMeta @@ -72,9 +74,18 @@ def _make_multi(): ] ) poly = Polygon([(4.0, 0.0), (4.0, 1.0), (5.0, 1.0), (5.0, 0.0)]) - polygon_series = gpd.GeoSeries([hole, overlap, poly]) + circ = Point(6.0, 0.5) + polygon_series = gpd.GeoSeries([hole, overlap, poly, circ]) cell_polygon_table = gpd.GeoDataFrame(geometry=polygon_series) - return ShapesModel.parse(cell_polygon_table) + sd_polygons = ShapesModel.parse(cell_polygon_table) + sd_polygons.loc[:, "radius"] = [None, None, None, 0.3] + + return sd_polygons sdata = SpatialData(shapes={"p": _make_multi()}) - sdata.pl.render_shapes(outline=True, fill_alpha=0.3).pl.show() + adata = anndata.AnnData(pd.DataFrame({"p": ["hole", "overlap", "square", "circle"]})) + adata.obs.loc[:, "region"] = "p" + adata.obs.loc[:, "val"] = [1, 2, 3, 4] + table = TableModel.parse(adata, region="p", region_key="region", instance_key="val") + sdata.table = table + sdata.pl.render_shapes(col="val", outline=True, fill_alpha=0.3).pl.show() From e866fe509d7992448364f13c96659de358648919 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Wed, 16 Aug 2023 15:17:54 +0200 Subject: [PATCH 09/12] upated images --- .../Shapes_can_render_multipolygons.png | Bin 2200 -> 4136 bytes ...pes_can_render_transformations_raccoon.png | Bin 2333 -> 0 bytes tests/pl/test_render_shapes.py | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 tests/_images/Shapes_can_render_transformations_raccoon.png diff --git a/tests/_images/Shapes_can_render_multipolygons.png b/tests/_images/Shapes_can_render_multipolygons.png index 435a879bb94020fba7217c44a32bf2cda7d2c002..b5898b356a388a46f4c4d755b0c857115efc9096 100644 GIT binary patch delta 4049 zcmXw+c_38#`^V2%k_=g5pvPvkyyhD^I85cyXe-@Pi!6#kkOTit0}eJ4Qn z{6n%UADiA2DOJpkD8d)%Timzo>Mxc`EQV%uv_2Ato?xRB3O@J$ZrW}~s_S|1}8L&K`*m29)%!~slsH;1rs;auy z_nJep#NSV)I0ik-p3&WH5gQweTBWrfh5lo(xGLz^b>=*a;%D9q3UIF7Z;q%N`you~ z!|X^4tjh1c1pTSTeqIZE0kR5EBol^bNqa3FjmD{)e0BZSg_|8>{nKC!SqMm$ zn7deS;P{Irvb>Q9Ebp<9x5P!o6Gp^u04(}BhivBr5%kdsGXDR?A9IkG^w{iR$bTf) z#9QB9fgm+n#bq+xgcK11iWG$`Mp7J#D4)oc<}H!UFbVhpky?NxW(vd3vHiCeMKYH0 zXEe}p`-ch9Lx?EV;c-0E`?&OV{=aySVV%I;JMX-|xwrKzgz+LiEiDcA_swDPj3q=DtO>{lL|W*m*i2mFm4kQlaRyT+w^rho$ign zm^wS3Ar=Q9Sphb7?#(pa;H8#Cf%7XgEMA!gmdM(J zBLSu?zf4K2iFfB$cBfoGw?TD&pGK!}e85aJBo>;bvH(OP(Qj|-UY)@>EB~-In@X_( zzWy1z*R5OPy1Hjf3;E7yVGy34(rfGMe5Xz&mOIxFD=T5~JR<2o?EwB^geM75m+7nk zWAoqN@vqCx&OQNPwZnJbe)q9Gvez!g_B;C{uJCi&Dl{T7nKw+2O2KqFme9VOO=BdH3$R&CwIeSf0dXB}ax$1nDe$&JDEJ3N767x@ zk@#O3=qt&H85IDM*VAhYoc0Pu)4Y?^A>BVj(*_l?yv=Va>5H?AQ!=~s3t;ciHlDHd z6>g15Wn~J(^Ur^Mt>(CJ;R1SCqgl0DXx)Y0vdm)H3uJl@9I8W$IL%&GiZ!~R-V=;7(?X^RJw z?c)vbd0E}euXjzu!gQ}YJFkv7``(!Aeg?2KaCCQcki(W62_GIFzIX`#HXR&~Vp=~FDJ?JO zhU3{abGX3+AFy^-oW$CXsrigjA)!=^c!dwEPodZHIl5lFcmd$j(s0gFyHHa5p$Fb=@tnHoD$rgM|^B7ohQ=CH`t;3Ue>NKvd< zkc))-W_YkHd}q0v1Gon^S*;I_VOyWsu&F}g}o_tL{o?+26b*&tRaBf z-&svspN!m71hg-T9hL10{bE6Vju{ZJef{v>xq-~`)m>J|l<#}^Pz~0-EnVsgxK(B* zJlt=eEog3kG{Swx@lEr}Utv_{PHJ)0($k(S&24wkXW$cmmW6cw`?{JML4X$yFVZ%w zWdTT(8J+FWrbURWuPCQK9Rpuf)B#-WO8M2Gg1{U{AFJEW-h;b)SK)Ily*3WbmCKsf z4)*SpxmF!S8ep(P2%DA?DLkL1KXIXXaAG8B%iYb$+(bg$+)bt(t!GH+fh`?XKIY>h;)qap^kWt5amO-d>@0TrSP#p0muG)X#-B4=qX(ESD7O)BM`CBbz4t->^*Fhfz1k0T7}}jJ z!UgdD8kb?NKqK?s3WaSqKKwE01^q3>LlEuX3u4Q{ps{gbtLJb7%QT!d1Sn4(~mJ%R<_Plpv5O@66vICZH4qrJD=4X+k$vv+i z=(oFZ`_}S~NZXl5fOhujoU|rSk%N7@4#Lz_ZX$#=xNdpS2cFw-UniZQw0$rb(c-N^ zeD}^aGP4I$GgHh(v-W#wG@r?=nZiz?UcP)OE+y4EvySU+yLrlUOdk~yp--F9_obu( zn#Z2-n!v_}haZ0W^eOB>Sv<<8Tab9}>{*m%&f|;>$^2?3g`I`cO226__|X3HgJna$ z%geF$4i3!4P*VRMG+C96lhk{-LyvF|{FIt(;3Ebk1o5>8;=^|>ksAxcXzZ4+HY3Nk ziA=2vjCVt>uZHcEEJ5yRo*5W@IkVa>w*9Mk@5@tpM*vu#?<4e`JbCiRuy9S}+8BDL z1Dz`SjbTOoeTIbuzO4#277a~J9_R3_R^yEX2xGsuSZf)3hdlY6V+VUi|9xdu6-AXz zmt)GQCt6-k&i+ED`%V~k4>s- zpw{PlBAEjNudWc@-uQg%mWRi5kJjW+y^d%iF(EdVt-1T$Sbsk*IT?EQ`v-2{=7`ky zt|wtHKX#?C1C!W8{oXu%F7xz1HqD?$R)QOXS{SO4r6teW+L|ABiK^3>GeenZ3{yq7 zB|ny55ZBTYRQKvd1P5#7Meg2C-8=>kpedouydKx+7_cGE&dyG4j=GBl_3*K-xSbN% zzhrF80+Pv5M)LA1f&-~?va)0WE4`?(F{j2H+6cXiP<8)@Ey%`4B$X#$;>00r;RhI5 z`mOvZ#^w`COSzOAH~1G87FL+^`CXf4xv?RgSyRe)HP5(3Y&s~oHwpI{?3GRQ_?MQI zK`9i<>o;%6;G(~k>PLp&*zt*qrufgajjJD~*8goZx^Xw}9r{&K5etx>p1#tp-ly$~ zj)meC6&2Um1q1}>Tui)(ZcxF;kEa9Yx}zvq?-oj-*(N64ENpA>lC5p}V31fCNfTVs9|!2Sg^X_rckUU07*vFH`InZW z{EsKg|BJpyNQ)n+=F_)Ryu0)%@#e2;eV<~QDGt(yTE zJrSfevuYIad^>OV$$yQE2S!Bs>{#9ibE>~Kp%DQ=4$X8v=MAn#S$(YvTB0Umo0<$< znj=NPv0m-fcg$!~z}WQCs)$4dtayU1^z0-W$^};-kz+U>XJ*DNEZnIx01@z>pYj;f z`iV#vN(D7s;!qp9Dfj1DQ!6bgk;{1cbb71`oy3L&{|Yv# zlCSR*M1DRGo*)-p&6!=qI)TMV0%rhaa4<&E`NPx`D}%>BLD;t!aFLdX&M`;czyHtK zCrc>J_a8oJ){MRcBp1wGRM`gApp>kx&&LfyWMhvY)e0dHp(+#a8hSd;+Z+Xr9vn!T zipiY@5nMl1{3*k{$9TgVRBKbnF0xvWn~ZS&2YPt}!9~F$9Ftl3?K1yQn!>+SC@1GT z6FESX%#hUKnSV!+0TM&+!;tq)ws8nYs)t1Ops@xey~Sne2v3W=&&M*%Z%!QpGwCK2 z_>BDsg;fa;y|2efT&E>R>0UL~-ozp7y6N(RM>Jd8LSi3!z&U4n<}W)+J~yHjHB&GsZpI)t*@}7z_Z= z(9$|5Ep1w%?6(vn;$i&f(w*D4F9ii@CYzq)7Z6x&6?7LjG!(0=tE&y5p8x~2wzp?1 nq#Vbwq%o4EB@m9FqK=2Kh?g2pDpeFd0KCjiED;sPsObLz)G*1Y literal 2200 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 diff --git a/tests/pl/test_render_shapes.py b/tests/pl/test_render_shapes.py index 53aad58e..5f9ea0c1 100644 --- a/tests/pl/test_render_shapes.py +++ b/tests/pl/test_render_shapes.py @@ -88,4 +88,4 @@ def _make_multi(): adata.obs.loc[:, "val"] = [1, 2, 3, 4] table = TableModel.parse(adata, region="p", region_key="region", instance_key="val") sdata.table = table - sdata.pl.render_shapes(col="val", outline=True, fill_alpha=0.3).pl.show() + sdata.pl.render_shapes(color="val", outline=True, fill_alpha=0.3).pl.show() From 950d08df132d184a2e46e4cf56bd0e456cfc101a Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Wed, 16 Aug 2023 15:38:30 +0200 Subject: [PATCH 10/12] GH action fix; added info to changelog --- CHANGELOG.md | 8 ++++++++ src/spatialdata_plot/pl/render.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d542b1fd..c4273a25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ and this project adheres to [Semantic Versioning][]. [keep a changelog]: https://keepachangelog.com/en/1.0.0/ [semantic versioning]: https://semver.org/spec/v2.0.0.html +## [0.0.5] -tbd + +### Added +- Multipolygons are now handled correctly (#93) + +### Fixed + + ## [0.0.4] - 2023-08-11 ### Fixed diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index 9a9effb2..07ee31f4 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -44,7 +44,7 @@ ) from spatialdata_plot.pp.utils import _get_instance_key, _get_region_key -_Normalize = Normalize | Sequence[Normalize] +_Normalize = Union[Normalize, Sequence[Normalize]] to_hex = partial(colors.to_hex, keep_alpha=True) From 7cf24a72af8b80b85b919e242711d2aaf784e508 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 13:38:46 +0000 Subject: [PATCH 11/12] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4273a25..5fc826db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,10 @@ and this project adheres to [Semantic Versioning][]. ## [0.0.5] -tbd ### Added -- Multipolygons are now handled correctly (#93) -### Fixed +- Multipolygons are now handled correctly (#93) +### Fixed ## [0.0.4] - 2023-08-11 From 2d34326f9b3322eadbc8e1f05932285c8256d8b8 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Wed, 16 Aug 2023 15:45:28 +0200 Subject: [PATCH 12/12] Added missing import --- src/spatialdata_plot/pl/render.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spatialdata_plot/pl/render.py b/src/spatialdata_plot/pl/render.py index 07ee31f4..bb798d7a 100644 --- a/src/spatialdata_plot/pl/render.py +++ b/src/spatialdata_plot/pl/render.py @@ -4,7 +4,7 @@ from copy import copy from dataclasses import dataclass from functools import partial -from typing import Any, Callable +from typing import Any, Callable, Union import geopandas as gpd import matplotlib