Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7e32745

Browse files
authored
Merge pull request #24732 from chahak13/24545_scatter_mask_datetime
Use masked stack to preserve mask info
2 parents 80705e2 + b62b679 commit 7e32745

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

lib/matplotlib/collections.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ def _prepare_points(self):
322322
paths.append(mpath.Path(np.column_stack([xs, ys]), path.codes))
323323
xs = self.convert_xunits(offsets[:, 0])
324324
ys = self.convert_yunits(offsets[:, 1])
325-
offsets = np.column_stack([xs, ys])
325+
offsets = np.ma.column_stack([xs, ys])
326326

327327
if not transform.is_affine:
328328
paths = [transform.transform_path_non_affine(path)

lib/matplotlib/tests/test_collections.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import io
22
from types import SimpleNamespace
3+
from datetime import datetime
34

45
import numpy as np
56
from numpy.testing import assert_array_equal, assert_array_almost_equal
@@ -1129,3 +1130,22 @@ def test_set_offset_units():
11291130
off0 = sc.get_offsets()
11301131
sc.set_offsets(list(zip(y, d)))
11311132
np.testing.assert_allclose(off0, sc.get_offsets())
1133+
1134+
1135+
@image_comparison(baseline_images=["test_check_masked_offsets"],
1136+
extensions=["png"], remove_text=True, style="mpl20")
1137+
def test_check_masked_offsets():
1138+
# Check if masked data is respected by scatter
1139+
# Ref: Issue #24545
1140+
unmasked_x = [
1141+
datetime(2022, 12, 15, 4, 49, 52),
1142+
datetime(2022, 12, 15, 4, 49, 53),
1143+
datetime(2022, 12, 15, 4, 49, 54),
1144+
datetime(2022, 12, 15, 4, 49, 55),
1145+
datetime(2022, 12, 15, 4, 49, 56),
1146+
]
1147+
1148+
masked_y = np.ma.array([1, 2, 3, 4, 5], mask=[0, 1, 1, 0, 0])
1149+
1150+
fig, ax = plt.subplots()
1151+
ax.scatter(unmasked_x, masked_y)

0 commit comments

Comments
 (0)