24
24
# The sole purpose of this class is to look at the upper, lower, or total
25
25
# interval as appropriate and see what parts of the tick to draw, if any.
26
26
class SkewXTick (maxis .XTick ):
27
- def draw (self , renderer ):
28
- if not self .get_visible ():
29
- return
30
- renderer .open_group (self .__name__ )
27
+ def _need_lower (self ):
28
+ return transforms .interval_contains (self .axes .lower_xlim ,
29
+ self .get_loc ())
31
30
32
- lower_interval = self .axes .xaxis .lower_interval
33
- upper_interval = self .axes .xaxis .upper_interval
31
+ def _need_upper (self ):
32
+ return transforms .interval_contains (self .axes .upper_xlim ,
33
+ self .get_loc ())
34
34
35
- if self .gridOn and transforms .interval_contains (
36
- self .axes .xaxis .get_view_interval (), self .get_loc ()):
37
- self .gridline .draw (renderer )
35
+ @property
36
+ def gridOn (self ):
37
+ return (self ._gridOn and
38
+ transforms .interval_contains (self .get_view_interval (),
39
+ self .get_loc ()))
40
+
41
+ @gridOn .setter
42
+ def gridOn (self , value ):
43
+ self ._gridOn = value
44
+
45
+ @property
46
+ def tick1On (self ):
47
+ return self ._tick1On and self ._need_lower ()
38
48
39
- if transforms .interval_contains (lower_interval , self .get_loc ()):
40
- if self .tick1On :
41
- self .tick1line .draw (renderer )
42
- if self .label1On :
43
- self .label1 .draw (renderer )
49
+ @tick1On .setter
50
+ def tick1On (self , value ):
51
+ self ._tick1On = value
44
52
45
- if transforms .interval_contains (upper_interval , self .get_loc ()):
46
- if self .tick2On :
47
- self .tick2line .draw (renderer )
48
- if self .label2On :
49
- self .label2 .draw (renderer )
53
+ @property
54
+ def label1On (self ):
55
+ return self ._label1On and self ._need_lower ()
50
56
51
- renderer .close_group (self .__name__ )
57
+ @label1On .setter
58
+ def label1On (self , value ):
59
+ self ._label1On = value
60
+
61
+ @property
62
+ def tick2On (self ):
63
+ return self ._tick2On and self ._need_upper ()
64
+
65
+ @tick2On .setter
66
+ def tick2On (self , value ):
67
+ self ._tick2On = value
68
+
69
+ @property
70
+ def label2On (self ):
71
+ return self ._label2On and self ._need_upper ()
72
+
73
+ @label2On .setter
74
+ def label2On (self , value ):
75
+ self ._label2On = value
76
+
77
+ def get_view_interval (self ):
78
+ return self .axes .xaxis .get_view_interval ()
52
79
53
80
54
81
# This class exists to provide two separate sets of intervals to the tick,
@@ -57,16 +84,8 @@ class SkewXAxis(maxis.XAxis):
57
84
def _get_tick (self , major ):
58
85
return SkewXTick (self .axes , 0 , '' , major = major )
59
86
60
- @property
61
- def lower_interval (self ):
62
- return self .axes .viewLim .intervalx
63
-
64
- @property
65
- def upper_interval (self ):
66
- return self .axes .upper_xlim
67
-
68
87
def get_view_interval (self ):
69
- return self .upper_interval [0 ], self .lower_interval [1 ]
88
+ return self .axes . upper_xlim [0 ], self .axes . lower_xlim [1 ]
70
89
71
90
72
91
# This class exists to calculate the separate data range of the
@@ -76,9 +95,9 @@ class SkewSpine(mspines.Spine):
76
95
def _adjust_location (self ):
77
96
pts = self ._path .vertices
78
97
if self .spine_type == 'top' :
79
- pts [:, 0 ] = self .axis . upper_interval
98
+ pts [:, 0 ] = self .axes . upper_xlim
80
99
else :
81
- pts [:, 0 ] = self .axis . lower_interval
100
+ pts [:, 0 ] = self .axes . lower_xlim
82
101
83
102
84
103
# This class handles registration of the skew-xaxes as a projection as well
@@ -134,6 +153,10 @@ def _set_lim_and_transforms(self):
134
153
transforms .IdentityTransform ()) +
135
154
transforms .Affine2D ().skew_deg (rot , 0 )) + self .transAxes
136
155
156
+ @property
157
+ def lower_xlim (self ):
158
+ return self .axes .viewLim .intervalx
159
+
137
160
@property
138
161
def upper_xlim (self ):
139
162
pts = [[0. , 1. ], [1. , 1. ]]
0 commit comments