|
99 | 99 | minor ticks. See the matplotlib.dates module for more information and |
100 | 100 | examples of using date locators and formatters. |
101 | 101 |
|
102 | | -DEVELOPERS NOTE |
103 | | -
|
104 | | -If you are implementing your own class or modifying one of these, it |
105 | | -is critical that you use viewlim and dataInterval READ ONLY MODE so |
106 | | -multiple axes can share the same locator w/o side effects! |
107 | | -
|
108 | 102 |
|
109 | 103 | """ |
110 | 104 |
|
|
121 | 115 |
|
122 | 116 |
|
123 | 117 | class TickHelper: |
| 118 | + axis = None |
| 119 | + def set_axis(self, axis): |
| 120 | + self.axis = axis |
124 | 121 |
|
125 | | - viewInterval = None |
126 | | - dataInterval = None |
127 | | - |
128 | | - def verify_intervals(self): |
129 | | - if self.dataInterval is None: |
130 | | - raise RuntimeError("You must set the data interval to use this function") |
131 | | - |
132 | | - if self.viewInterval is None: |
133 | | - raise RuntimeError("You must set the view interval to use this function") |
134 | | - |
135 | | - |
136 | | - def set_view_interval(self, interval): |
137 | | - self.viewInterval = interval |
138 | | - |
139 | | - def set_data_interval(self, interval): |
140 | | - self.dataInterval = interval |
141 | | - |
142 | | - def set_bounds(self, vmin, vmax): |
143 | | - ''' |
144 | | - Set dataInterval and viewInterval from numeric vmin, vmax. |
145 | | -
|
146 | | - This is for stand-alone use of Formatters and/or |
147 | | - Locators that require these intervals; that is, for |
148 | | - cases where the Intervals do not need to be updated |
149 | | - automatically. |
150 | | - ''' |
151 | | - # MGDTODO: Interval no longer exists |
152 | | - self.dataInterval = maffine.Interval([vmin, vmax]) |
153 | | - self.viewInterval = maffine.Interval([vmin, vmax]) |
154 | 122 |
|
155 | 123 | class Formatter(TickHelper): |
156 | 124 | """ |
@@ -341,9 +309,8 @@ def set_locs(self, locs): |
341 | 309 | 'set the locations of the ticks' |
342 | 310 | self.locs = locs |
343 | 311 | if len(self.locs) > 0: |
344 | | - self.verify_intervals() |
345 | | - vmin, vmax = self.viewInterval |
346 | | - d = abs(vmax - vmin) |
| 312 | + vmin, vmax = self.axis.get_view_interval() |
| 313 | + d = abs(vmax-vmin) |
347 | 314 | if self._useOffset: self._set_offset(d) |
348 | 315 | self._set_orderOfMagnitude(d) |
349 | 316 | self._set_format() |
@@ -865,14 +832,12 @@ def bin_boundaries(self, vmin, vmax): |
865 | 832 |
|
866 | 833 |
|
867 | 834 | def __call__(self): |
868 | | - self.verify_intervals() |
869 | | - vmin, vmax = self.viewInterval |
| 835 | + vmin, vmax = self.axis.get_view_interval() |
870 | 836 | vmin, vmax = maffine.nonsingular(vmin, vmax, expander = 0.05) |
871 | 837 | return self.bin_boundaries(vmin, vmax) |
872 | 838 |
|
873 | 839 | def autoscale(self): |
874 | | - self.verify_intervals() |
875 | | - dmin, dmax = self.dataInterval |
| 840 | + dmin, dmax = self.axis.get_data_interval() |
876 | 841 | dmin, dmax = maffine.nonsingular(dmin, dmax, expander = 0.05) |
877 | 842 | return npy.take(self.bin_boundaries(dmin, dmax), [0,-1]) |
878 | 843 |
|
|
0 commit comments