Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d27ab97

Browse filesBrowse files
committed
MarkerStyle is considered immutable
1 parent 408b1ab commit d27ab97
Copy full SHA for d27ab97

File tree

Expand file treeCollapse file tree

4 files changed

+27
-17
lines changed
Filter options
Expand file treeCollapse file tree

4 files changed

+27
-17
lines changed
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
``MarkerStyle`` is considered immutable
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
``MarkerStyle.set_fillstyle()`` and ``MarkerStyle.set_marker()`` are
4+
deprecated. Create a new ``MarkerStyle`` with the respective parameters
5+
instead.

‎lib/matplotlib/lines.py

Copy file name to clipboardExpand all lines: lib/matplotlib/lines.py
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ def set_fillstyle(self, fs):
534534
535535
For examples see :ref:`marker_fill_styles`.
536536
"""
537-
self._marker.set_fillstyle(fs)
537+
self.set_marker(MarkerStyle(self._marker.get_marker(), fs))
538538
self.stale = True
539539

540540
def set_markevery(self, every):
@@ -930,7 +930,8 @@ def get_markeredgecolor(self):
930930
if rcParams['_internal.classic_mode']:
931931
if self._marker.get_marker() in ('.', ','):
932932
return self._color
933-
if self._marker.is_filled() and self.get_fillstyle() != 'none':
933+
if (self._marker.is_filled()
934+
and self._marker.get_fillstyle() != 'none'):
934935
return 'k' # Bad hard-wired default...
935936
return self._color
936937
else:
@@ -945,7 +946,7 @@ def get_markeredgewidth(self):
945946
return self._markeredgewidth
946947

947948
def _get_markerfacecolor(self, alt=False):
948-
if self.get_fillstyle() == 'none':
949+
if self._marker.get_fillstyle() == 'none':
949950
return 'none'
950951
fc = self._markerfacecoloralt if alt else self._markerfacecolor
951952
if cbook._str_lower_equal(fc, 'auto'):
@@ -1166,7 +1167,7 @@ def set_marker(self, marker):
11661167
See `~matplotlib.markers` for full description of possible
11671168
arguments.
11681169
"""
1169-
self._marker.set_marker(marker)
1170+
self._marker = MarkerStyle(marker, self._marker.get_fillstyle())
11701171
self.stale = True
11711172

11721173
def set_markeredgecolor(self, ec):

‎lib/matplotlib/markers.py

Copy file name to clipboardExpand all lines: lib/matplotlib/markers.py
+13-2Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ class MarkerStyle:
147147
"""
148148
A class representing marker types.
149149
150+
Instances are considered immutable. If you need to change anything, create
151+
a new instance.
152+
150153
Attributes
151154
----------
152155
markers : list
@@ -228,8 +231,8 @@ def __init__(self, marker=None, fillstyle=None):
228231
One of 'full', 'left', 'right', 'bottom', 'top', 'none'.
229232
"""
230233
self._marker_function = None
231-
self.set_fillstyle(fillstyle)
232-
self.set_marker(marker)
234+
self._set_fillstyle(fillstyle)
235+
self._set_marker(marker)
233236

234237
def _recache(self):
235238
if self._marker_function is None:
@@ -256,7 +259,11 @@ def is_filled(self):
256259
def get_fillstyle(self):
257260
return self._fillstyle
258261

262+
@_api.deprecated("3.4", alternative="a new marker")
259263
def set_fillstyle(self, fillstyle):
264+
return self._set_fillstyle(fillstyle)
265+
266+
def _set_fillstyle(self, fillstyle):
260267
"""
261268
Set the fillstyle.
262269
@@ -281,7 +288,11 @@ def get_capstyle(self):
281288
def get_marker(self):
282289
return self._marker
283290

291+
@_api.deprecated("3.4", alternative="a new marker")
284292
def set_marker(self, marker):
293+
return self._set_marker(marker)
294+
295+
def _set_marker(self, marker):
285296
"""
286297
Set the marker.
287298

‎lib/matplotlib/tests/test_marker.py

Copy file name to clipboardExpand all lines: lib/matplotlib/tests/test_marker.py
+4-11Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,19 @@ def test_marker_fillstyle():
1414

1515

1616
def test_markers_valid():
17-
marker_style = markers.MarkerStyle()
18-
mrk_array = np.array([[-0.5, 0],
19-
[0.5, 0]])
2017
# Checking this doesn't fail.
21-
marker_style.set_marker(mrk_array)
18+
markers.MarkerStyle(np.array([[-0.5, 0], [0.5, 0]]))
2219

2320

2421
def test_markers_invalid():
25-
marker_style = markers.MarkerStyle()
26-
mrk_array = np.array([[-0.5, 0, 1, 2, 3]])
27-
# Checking this does fail.
2822
with pytest.raises(ValueError):
29-
marker_style.set_marker(mrk_array)
23+
markers.MarkerStyle(np.array([[-0.5, 0, 1, 2, 3]]))
3024

3125

3226
def test_marker_path():
33-
marker_style = markers.MarkerStyle()
34-
path = Path([[0, 0], [1, 0]], [Path.MOVETO, Path.LINETO])
3527
# Checking this doesn't fail.
36-
marker_style.set_marker(path)
28+
path = Path([[0, 0], [1, 0]], [Path.MOVETO, Path.LINETO])
29+
markers.MarkerStyle(path)
3730

3831

3932
class UnsnappedMarkerStyle(markers.MarkerStyle):

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.