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

Skip to content

Commit dd8b071

Browse files
committed
limit StepPatch to get/set_data()
1 parent a876c72 commit dd8b071

File tree

2 files changed

+14
-44
lines changed

2 files changed

+14
-44
lines changed

lib/matplotlib/patches.py

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import math
55
from numbers import Number
66
import textwrap
7+
from collections import namedtuple
78

89
import numpy as np
910

@@ -993,12 +994,13 @@ def _update_path(self):
993994
self._path = Path(np.vstack(verts), np.hstack(codes))
994995

995996
def get_data(self):
996-
"""Get `.StepPatch` values, edges and baseline."""
997-
return self._values, self._edges, self._baseline
997+
"""Get `.StepPatch` values, edges and baseline as namedtuple."""
998+
StairData = namedtuple('StairData', 'values edges baseline')
999+
return StairData(self._values, self._edges, self._baseline)
9981000

999-
def set_data(self, values, edges=None, baseline=None):
1001+
def set_data(self, values=None, edges=None, baseline=None):
10001002
"""
1001-
Set `.StepPatch` values and optionally edges and baseline.
1003+
Set `.StepPatch` values, edges and baseline.
10021004
10031005
Parameters
10041006
----------
@@ -1007,6 +1009,8 @@ def set_data(self, values, edges=None, baseline=None):
10071009
edges : 1D array-like, optional
10081010
baseline : float, 1D array-like or None
10091011
"""
1012+
if values is None and edges is None and baseline is None:
1013+
raise ValueError("Must set *values*, *edges* or *baseline*.")
10101014
if values is not None:
10111015
self._values = np.asarray(values)
10121016
if edges is not None:
@@ -1016,40 +1020,6 @@ def set_data(self, values, edges=None, baseline=None):
10161020
self._update_path()
10171021
self.stale = True
10181022

1019-
def set_values(self, values):
1020-
"""
1021-
Set `.StepPatch` values.
1022-
1023-
Parameters
1024-
----------
1025-
values : 1D array-like
1026-
"""
1027-
self.set_data(values, edges=None, baseline=None)
1028-
1029-
def set_edges(self, edges):
1030-
"""
1031-
Set `.StepPatch` edges.
1032-
1033-
Parameters
1034-
----------
1035-
edges : 1D array-like
1036-
"""
1037-
self.set_data(None, edges=edges, baseline=None)
1038-
1039-
def get_baseline(self):
1040-
"""Get `.StepPatch` baseline."""
1041-
return self._baseline
1042-
1043-
def set_baseline(self, baseline):
1044-
"""
1045-
Set `.StepPatch` baseline.
1046-
1047-
Parameters
1048-
----------
1049-
baseline : float, array-like or None, default: 0
1050-
"""
1051-
self.set_data(None, edges=None, baseline=baseline)
1052-
10531023

10541024
class Polygon(Patch):
10551025
"""A general polygon patch."""

lib/matplotlib/tests/test_axes.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1884,15 +1884,15 @@ def test_stairs_update(fig_test, fig_ref):
18841884
test_ax = fig_test.add_subplot()
18851885
h = test_ax.stairs([1, 2, 3])
18861886
test_ax.set_ylim(ylim)
1887-
h.set_values([3, 2, 1])
1888-
h.set_edges(np.arange(4)+2)
1887+
h.set_data([3, 2, 1])
1888+
h.set_data(None, np.arange(4)+2)
18891889
h.set_data([1, 2, 1], np.arange(4)/2)
18901890
h.set_data([1, 2, 3])
18911891
h.set_data(None, np.arange(4))
18921892
assert np.allclose(h.get_data()[0], np.arange(1, 4))
18931893
assert np.allclose(h.get_data()[1], np.arange(4))
1894-
h.set_baseline(-2)
1895-
assert h.get_baseline() == -2
1894+
h.set_data(baseline=-2)
1895+
assert h.get_data().baseline == -2
18961896

18971897
# Ref
18981898
ref_ax = fig_ref.add_subplot()
@@ -1913,13 +1913,13 @@ def test_stairs_invalid_mismatch():
19131913
def test_stairs_invalid_update():
19141914
h = plt.stairs([1, 2], [0, 1, 2])
19151915
with pytest.raises(ValueError, match='Nan values in "edges"'):
1916-
h.set_edges([1, np.nan, 2])
1916+
h.set_data(None, [1, np.nan, 2])
19171917

19181918

19191919
def test_stairs_invalid_update2():
19201920
h = plt.stairs([1, 2], [0, 1, 2])
19211921
with pytest.raises(ValueError, match='Size mismatch'):
1922-
h.set_edges(np.arange(5))
1922+
h.set_data(None, np.arange(5))
19231923

19241924

19251925
@image_comparison(['test_stairs_options.png'], remove_text=True)

0 commit comments

Comments
 (0)