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

Skip to content

Commit 70831bd

Browse files
authored
Merge pull request #7809 from lkilcher/marker_verts_bug
Fix for marker verts bug
2 parents 87885e7 + 019d651 commit 70831bd

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

lib/matplotlib/markers.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,14 @@ def get_marker(self):
249249
return self._marker
250250

251251
def set_marker(self, marker):
252-
if (isinstance(marker, Sized) and len(marker) in (2, 3) and
252+
if (isinstance(marker, np.ndarray) and marker.ndim == 2 and
253+
marker.shape[1] == 2):
254+
self._marker_function = self._set_vertices
255+
elif (isinstance(marker, Sized) and len(marker) in (2, 3) and
253256
marker[1] in (0, 1, 2, 3)):
254257
self._marker_function = self._set_tuple_marker
255-
elif isinstance(marker, np.ndarray):
256-
self._marker_function = self._set_vertices
257-
elif not isinstance(marker, list) and marker in self.markers:
258+
elif (not isinstance(marker, (np.ndarray, list)) and
259+
marker in self.markers):
258260
self._marker_function = getattr(
259261
self, '_set_' + self.markers[marker])
260262
elif is_string_like(marker) and is_math_text(marker):

lib/matplotlib/tests/test_marker.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import numpy as np
2+
from matplotlib import markers
3+
4+
import pytest
5+
6+
7+
def test_markers_valid():
8+
marker_style = markers.MarkerStyle()
9+
mrk_array = np.array([[-0.5, 0],
10+
[0.5, 0]])
11+
# Checking this doesn't fail.
12+
marker_style.set_marker(mrk_array)
13+
14+
15+
def test_markers_invalid():
16+
marker_style = markers.MarkerStyle()
17+
mrk_array = np.array([[-0.5, 0, 1, 2, 3]])
18+
# Checking this does fail.
19+
with pytest.raises(ValueError):
20+
marker_style.set_marker(mrk_array)

0 commit comments

Comments
 (0)