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

Skip to content

Commit c56edd2

Browse files
authored
Merge pull request #22413 from timhoffm/simplify-axisartist
Remove some trivial private getters/setters in axisartist
2 parents c7a7cfd + cd34eb9 commit c56edd2

File tree

2 files changed

+37
-64
lines changed

2 files changed

+37
-64
lines changed

lib/mpl_toolkits/axisartist/axis_artist.py

Lines changed: 33 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -216,26 +216,16 @@ def __init__(self, *args, **kwargs):
216216
self.set_rotation_mode("anchor")
217217
self._text_follow_ref_angle = True
218218

219-
def _set_ref_angle(self, a):
220-
self._ref_angle = a
221-
222-
def _get_ref_angle(self):
223-
return self._ref_angle
224-
225-
def _get_text_ref_angle(self):
219+
@property
220+
def _text_ref_angle(self):
226221
if self._text_follow_ref_angle:
227-
return self._get_ref_angle()+90
222+
return self._ref_angle + 90
228223
else:
229-
return 0 # self.get_ref_angle()
230-
231-
def _get_offset_ref_angle(self):
232-
return self._get_ref_angle()
224+
return 0
233225

234-
def _set_offset_radius(self, offset_radius):
235-
self._offset_radius = offset_radius
236-
237-
def _get_offset_radius(self):
238-
return self._offset_radius
226+
@property
227+
def _offset_ref_angle(self):
228+
return self._ref_angle
239229

240230
_get_opposite_direction = {"left": "right",
241231
"right": "left",
@@ -249,14 +239,12 @@ def draw(self, renderer):
249239
# save original and adjust some properties
250240
tr = self.get_transform()
251241
angle_orig = self.get_rotation()
252-
text_ref_angle = self._get_text_ref_angle()
253-
offset_ref_angle = self._get_offset_ref_angle()
254-
theta = np.deg2rad(offset_ref_angle)
255-
dd = self._get_offset_radius()
242+
theta = np.deg2rad(self._offset_ref_angle)
243+
dd = self._offset_radius
256244
dx, dy = dd * np.cos(theta), dd * np.sin(theta)
257245

258246
self.set_transform(tr + Affine2D().translate(dx, dy))
259-
self.set_rotation(text_ref_angle+angle_orig)
247+
self.set_rotation(self._text_ref_angle + angle_orig)
260248
super().draw(renderer)
261249
# restore original properties
262250
self.set_transform(tr)
@@ -266,14 +254,12 @@ def get_window_extent(self, renderer):
266254
# save original and adjust some properties
267255
tr = self.get_transform()
268256
angle_orig = self.get_rotation()
269-
text_ref_angle = self._get_text_ref_angle()
270-
offset_ref_angle = self._get_offset_ref_angle()
271-
theta = np.deg2rad(offset_ref_angle)
272-
dd = self._get_offset_radius()
257+
theta = np.deg2rad(self._offset_ref_angle)
258+
dd = self._offset_radius
273259
dx, dy = dd * np.cos(theta), dd * np.sin(theta)
274260

275261
self.set_transform(tr + Affine2D().translate(dx, dy))
276-
self.set_rotation(text_ref_angle+angle_orig)
262+
self.set_rotation(self._text_ref_angle + angle_orig)
277263
bbox = super().get_window_extent(renderer).frozen()
278264
# restore original properties
279265
self.set_transform(tr)
@@ -294,7 +280,7 @@ class AxisLabel(AttributeCopier, LabelBase):
294280
def __init__(self, *args, axis_direction="bottom", axis=None, **kwargs):
295281
self._axis = axis
296282
self._pad = 5
297-
self._extra_pad = 0
283+
self._external_pad = 0 # in pixels
298284
LabelBase.__init__(self, *args, **kwargs)
299285
self.set_axis_direction(axis_direction)
300286

@@ -315,14 +301,6 @@ def get_pad(self):
315301
"""
316302
return self._pad
317303

318-
def _set_external_pad(self, p):
319-
"""Set external pad in pixels."""
320-
self._extra_pad = p
321-
322-
def _get_external_pad(self):
323-
"""Return external pad in pixels."""
324-
return self._extra_pad
325-
326304
def get_ref_artist(self):
327305
# docstring inherited
328306
return self._axis.get_label()
@@ -378,19 +356,17 @@ def draw(self, renderer):
378356
if not self.get_visible():
379357
return
380358

381-
pad = renderer.points_to_pixels(self.get_pad())
382-
r = self._get_external_pad() + pad
383-
self._set_offset_radius(r)
359+
self._offset_radius = \
360+
self._external_pad + renderer.points_to_pixels(self.get_pad())
384361

385362
super().draw(renderer)
386363

387364
def get_window_extent(self, renderer):
388365
if not self.get_visible():
389366
return
390367

391-
pad = renderer.points_to_pixels(self.get_pad())
392-
r = self._get_external_pad() + pad
393-
self._set_offset_radius(r)
368+
r = self._external_pad + renderer.points_to_pixels(self.get_pad())
369+
self._offset_radius = r
394370

395371
bb = super().get_window_extent(renderer)
396372

@@ -513,20 +489,19 @@ def _get_ticklabels_offsets(self, renderer, label_direction):
513489

514490
def draw(self, renderer):
515491
if not self.get_visible():
516-
self._axislabel_pad = self._get_external_pad()
492+
self._axislabel_pad = self._external_pad
517493
return
518494

519495
r, total_width = self._get_ticklabels_offsets(renderer,
520496
self._axis_direction)
521497

522-
pad = (self._get_external_pad()
523-
+ renderer.points_to_pixels(self.get_pad()))
524-
self._set_offset_radius(r+pad)
498+
pad = self._external_pad + renderer.points_to_pixels(self.get_pad())
499+
self._offset_radius = r + pad
525500

526501
for (x, y), a, l in self._locs_angles_labels:
527502
if not l.strip():
528503
continue
529-
self._set_ref_angle(a) # + add_angle
504+
self._ref_angle = a
530505
self.set_x(x)
531506
self.set_y(y)
532507
self.set_text(l)
@@ -541,20 +516,19 @@ def set_locs_angles_labels(self, locs_angles_labels):
541516
def get_window_extents(self, renderer):
542517

543518
if not self.get_visible():
544-
self._axislabel_pad = self._get_external_pad()
519+
self._axislabel_pad = self._external_pad
545520
return []
546521

547522
bboxes = []
548523

549524
r, total_width = self._get_ticklabels_offsets(renderer,
550525
self._axis_direction)
551526

552-
pad = self._get_external_pad() + \
553-
renderer.points_to_pixels(self.get_pad())
554-
self._set_offset_radius(r+pad)
527+
pad = self._external_pad + renderer.points_to_pixels(self.get_pad())
528+
self._offset_radius = r + pad
555529

556530
for (x, y), a, l in self._locs_angles_labels:
557-
self._set_ref_angle(a) # + add_angle
531+
self._ref_angle = a
558532
self.set_x(x)
559533
self.set_y(y)
560534
self.set_text(l)
@@ -878,13 +852,12 @@ def _update_ticks(self, renderer):
878852

879853
dpi_cor = renderer.points_to_pixels(1.)
880854
if self.major_ticks.get_visible() and self.major_ticks.get_tick_out():
881-
self.major_ticklabels._set_external_pad(
882-
self.major_ticks._ticksize * dpi_cor)
883-
self.minor_ticklabels._set_external_pad(
884-
self.major_ticks._ticksize * dpi_cor)
855+
ticklabel_pad = self.major_ticks._ticksize * dpi_cor
856+
self.major_ticklabels._external_pad = ticklabel_pad
857+
self.minor_ticklabels._external_pad = ticklabel_pad
885858
else:
886-
self.major_ticklabels._set_external_pad(0)
887-
self.minor_ticklabels._set_external_pad(0)
859+
self.major_ticklabels._external_pad = 0
860+
self.minor_ticklabels._external_pad = 0
888861

889862
majortick_iter, minortick_iter = \
890863
self._axis_artist_helper.get_tick_iterators(self.axes)
@@ -970,7 +943,7 @@ def _update_label(self, renderer):
970943
axislabel_pad = max(self.major_ticklabels._axislabel_pad,
971944
self.minor_ticklabels._axislabel_pad)
972945

973-
self.label._set_external_pad(axislabel_pad)
946+
self.label._external_pad = axislabel_pad
974947

975948
xy, angle_tangent = \
976949
self._axis_artist_helper.get_axislabel_pos_angle(self.axes)
@@ -980,7 +953,7 @@ def _update_label(self, renderer):
980953
angle_label = angle_tangent - 90
981954

982955
x, y = xy
983-
self.label._set_ref_angle(angle_label+self._axislabel_add_angle)
956+
self.label._ref_angle = angle_label + self._axislabel_add_angle
984957
self.label.set(x=x, y=y)
985958

986959
def _draw_label(self, renderer):

lib/mpl_toolkits/tests/test_axisartist_axis_artist.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ def test_labelbase():
3434
ax.plot([0.5], [0.5], "o")
3535

3636
label = LabelBase(0.5, 0.5, "Test")
37-
label._set_ref_angle(-90)
38-
label._set_offset_radius(offset_radius=50)
37+
label._ref_angle = -90
38+
label._offset_radius = 50
3939
label.set_rotation(-90)
4040
label.set(ha="center", va="top")
4141
ax.add_artist(label)
@@ -67,8 +67,8 @@ def test_ticklabels():
6767

6868
ax.plot([0.5], [0.5], "s")
6969
axislabel = AxisLabel(0.5, 0.5, "Test")
70-
axislabel._set_offset_radius(20)
71-
axislabel._set_ref_angle(0)
70+
axislabel._offset_radius = 20
71+
axislabel._ref_angle = 0
7272
axislabel.set_axis_direction("bottom")
7373
ax.add_artist(axislabel)
7474

0 commit comments

Comments
 (0)