44import math
55from numbers import Number
66import textwrap
7+ from collections import namedtuple
78
89import numpy as np
910
@@ -920,7 +921,8 @@ class StepPatch(PathPatch):
920921 """
921922 A path patch describing a stepwise constant function.
922923
923- The path is unclosed. It starts and stops at baseline.
924+ By default the path is not closed and starts and stops at
925+ baseline value.
924926 """
925927
926928 _edge_default = False
@@ -939,12 +941,14 @@ def __init__(self, values, edges, *,
939941 between which the curve takes on vals values.
940942
941943 orientation : {'vertical', 'horizontal'}, default: 'vertical'
942- The direction of the steps. Vertical means that *values* are along
943- the y-axis, and edges are along the x-axis.
944+ The direction of the steps. Vertical means that *values* are
945+ along the y-axis, and edges are along the x-axis.
944946
945- baseline : float, 1D array-like or None, default: 0
946- Determines bottom value of the bounding edges or when
947- ``fill=True``, position of lower edge.
947+ baseline : float, array-like or None, default: 0
948+ The bottom value of the bounding edges or when
949+ ``fill=True``, position of lower edge. If *fill* is
950+ True or an array is passed to *baseline*, a closed
951+ path is drawn.
948952
949953 Other valid keyword arguments are:
950954
@@ -993,12 +997,13 @@ def _update_path(self):
993997 self ._path = Path (np .vstack (verts ), np .hstack (codes ))
994998
995999 def get_data (self ):
996- """Get `.StepPatch` values, edges and baseline."""
997- return self ._values , self ._edges , self ._baseline
1000+ """Get `.StepPatch` values, edges and baseline as namedtuple."""
1001+ StairData = namedtuple ('StairData' , 'values edges baseline' )
1002+ return StairData (self ._values , self ._edges , self ._baseline )
9981003
999- def set_data (self , values , edges = None , baseline = None ):
1004+ def set_data (self , values = None , edges = None , baseline = None ):
10001005 """
1001- Set `.StepPatch` values and optionally edges and baseline.
1006+ Set `.StepPatch` values, edges and baseline.
10021007
10031008 Parameters
10041009 ----------
@@ -1007,6 +1012,8 @@ def set_data(self, values, edges=None, baseline=None):
10071012 edges : 1D array-like, optional
10081013 baseline : float, 1D array-like or None
10091014 """
1015+ if values is None and edges is None and baseline is None :
1016+ raise ValueError ("Must set *values*, *edges* or *baseline*." )
10101017 if values is not None :
10111018 self ._values = np .asarray (values )
10121019 if edges is not None :
@@ -1016,40 +1023,6 @@ def set_data(self, values, edges=None, baseline=None):
10161023 self ._update_path ()
10171024 self .stale = True
10181025
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-
10531026
10541027class Polygon (Patch ):
10551028 """A general polygon patch."""
0 commit comments