Skip to content

Commit 51f053e

Browse files
author
Sonja Stockhaus
committed
fix datashader Point behavior
1 parent 17c38aa commit 51f053e

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/spatialdata_plot/pl/render.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,19 +186,23 @@ def _render_shapes(
186186
if method == "datashader":
187187
_geometry = shapes["geometry"]
188188
is_point = _geometry.type == "Point"
189+
filtered_shapes_element = sdata_filt.shapes[element]
189190

190191
# Handle circles encoded as points with radius
191192
if is_point.any():
193+
filtered_shapes_element = sd.deepcopy(filtered_shapes_element)
192194
scale = shapes[is_point]["radius"] * render_params.scale
193-
sdata_filt.shapes[element].loc[is_point, "geometry"] = _geometry[is_point].buffer(scale.to_numpy())
195+
filtered_shapes_element.loc[is_point, "geometry"] = _geometry[is_point].buffer(scale.to_numpy())
194196

195197
# apply transformations to the individual points
196-
element_trans = get_transformation(sdata_filt.shapes[element], to_coordinate_system=coordinate_system)
198+
element_trans = get_transformation(filtered_shapes_element, to_coordinate_system=coordinate_system)
197199
tm = _get_transformation_matrix_for_datashader(element_trans)
198-
transformed_element = shapes.transform(lambda x: (np.hstack([x, np.ones((x.shape[0], 1))]) @ tm)[:, :2])
200+
transformed_element = filtered_shapes_element.transform(
201+
lambda x: (np.hstack([x, np.ones((x.shape[0], 1))]) @ tm)[:, :2]
202+
)
199203
transformed_element = ShapesModel.parse(
200204
gpd.GeoDataFrame(
201-
data=sdata_filt.shapes[element].drop("geometry", axis=1),
205+
data=filtered_shapes_element.drop("geometry", axis=1),
202206
geometry=transformed_element,
203207
)
204208
)

0 commit comments

Comments
 (0)