8000 Remove some trivial private getters/setters in axisartist by timhoffm · Pull Request #22413 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

Skip to content

Remove some trivial private getters/setters in axisartist #22413

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 33 additions & 60 deletions lib/mpl_toolkits/axisartist/axis_artist.py
< 8000 /tr>
Original file line number Diff line number Diff line change
Expand Up @@ -216,26 +216,16 @@ def __init__(self, *args, **kwargs):
self.set_rotation_mode("anchor")
self._text_follow_ref_angle = True

def _set_ref_angle(self, a):
self._ref_angle = a

def _get_ref_angle(self):
return self._ref_angle

def _get_text_ref_angle(self):
@property
def _text_ref_angle(self):
if self._text_follow_ref_angle:
return self._get_ref_angle()+90
return self._ref_angle + 90
else:
return 0 # self.get_ref_angle()

def _get_offset_ref_angle(self):
return self._get_ref_angle()
return 0

def _set_offset_radius(self, offset_radius):
self._offset_radius = offset_radius

def _get_offset_radius(self):
return self._offset_radius
@property
def _offset_ref_angle(self):
return self._ref_angle

_get_opposite_direction = {"left": "right",
"right": "left",
Expand All @@ -249,14 +239,12 @@ def draw(self, renderer):
# save original and adjust some properties
tr = self.get_transform()
angle_orig = self.get_rotation()
text_ref_angle = self._get_text_ref_angle()
offset_ref_angle = self._get_offset_ref_angle()
theta = np.deg2rad(offset_ref_angle)
dd = self._get_offset_radius()
theta = np.deg2rad(self._offset_ref_angle)
dd = self._offset_radius
dx, dy = dd * np.cos(theta), dd * np.sin(theta)

self.set_transform(tr + Affine2D().translate(dx, dy))
self.set_rotation(text_ref_angle+angle_orig)
self.set_rotation(self._text_ref_angle + angle_orig)
super().draw(renderer)
# restore original properties
self.set_transform(tr)
Expand All @@ -266,14 +254,12 @@ def get_window_extent(self, renderer):
# save original and adjust some properties
tr = self.get_transform()
angle_orig = self.get_rotation()
text_ref_angle = self._get_text_ref_angle()
offset_ref_angle = self._get_offset_ref_angle()
theta = np.deg2rad(offset_ref_angle)
dd = self._get_offset_radius()
theta = np.deg2rad(self._offset_ref_angle)
dd = self._offset_radius
dx, dy = dd * np.cos(theta), dd * np.sin(theta)

self.set_transform(tr + Affine2D().translate(dx, dy))
self.set_rotation(text_ref_angle+angle_orig)
self.set_rotation(self._text_ref_angle + angle_orig)
bbox = super().get_window_extent(renderer).frozen()
# restore original properties
self.set_transform(tr)
Expand All @@ -294,7 +280,7 @@ class AxisLabel(AttributeCopier, LabelBase):
def __init__(self, *args, axis_direction="bottom", axis=None, **kwargs):
self._axis = axis
self._pad = 5
self._extra_pad = 0
self._external_pad = 0 # in pixels
LabelBase.__init__(self, *args, **kwargs)
self.set_axis_direction(axis_direction)

Expand All @@ -315,14 +301,6 @@ def get_pad(self):
"""
return self._pad

def _set_external_pad(self, p):
"""Set external pad in pixels."""
self._extra_pad = p

def _get_external_pad(self):
"""Return external pad in pixels."""
return self._extra_pad

def get_ref_artist(self):
# docstring inherited
return self._axis.get_label()
Expand Down Expand Up @@ -378,19 +356,17 @@ def draw(self, renderer):
if not self.get_visible():
return

pad = renderer.points_to_pixels(self.get_pad())
r = self._get_external_pad() + pad
self._set_offset_radius(r)
self._offset_radius = \
self._external_pad + renderer.points_to_pixels(self.get_pad())

super().draw(renderer)

def get_window_extent(self, renderer):
if not self.get_visible():
return

pad = renderer.points_to_pixels(self.get_pad())
r = self._get_external_pad() + pad
self._set_offset_radius(r)
r = self._external_pad + renderer.points_to_pixels(self.get_pad())
self._offset_radius = r

bb = super().get_window_extent(renderer)

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

def draw(self, renderer):
if not self.get_visible():
self._axislabel_pad = self._get_external_pad()
self._axislabel_pad = self._external_pad
return

r, total_width = self._get_ticklabels_offsets(renderer,
self._axis_direction)

pad = (self._get_external_pad()
+ renderer.points_to_pixels(self.get_pad()))
self._set_offset_radius(r+pad)
pad = self._external_pad + renderer.points_to_pixels(self.get_pad())
self._offset_radius = r + pad

for (x, y), a, l in self._locs_angles_labels:
if not l.strip():
continue
self._set_ref_angle(a) # + add_angle
self._ref_angle = a
self.set_x(x)
self.set_y(y)
self.set_text(l)
Expand All @@ -541,20 +516,19 @@ def set_locs_angles_labels(self, locs_angles_labels):
def get_window_extents(self, renderer):

if not self.get_visible():
self._axislabel_pad = self._get_external_pad()
self._axislabel_pad = self._external_pad
return []

bboxes = []

r, total_width = self._get_ticklabels_offsets(renderer,
self._axis_direction)

pad = self._get_external_pad() + \
renderer.points_to_pixels(self.get_pad())
self._set_offset_radius(r+pad)
pad = self._external_pad + renderer.points_to_pixels(self.get_pad())
self._offset_radius = r + pad

for (x, y), a, l in self._locs_angles_labels:
self._set_ref_angle(a) # + add_angle
self._ref_angle = a
self.set_x(x)
self.set_y(y)
self.set_text(l)
Expand Down Expand Up @@ -878,13 +852,12 @@ def _update_ticks(self, renderer):

dpi_cor = renderer.points_to_pixels(1.)
if self.major_ticks.get_visible() and self.major_ticks.get_tick_out():
self.major_ticklabels._set_external_pad(
self.major_ticks._ticksize * dpi_cor)
self.minor_ticklabels._set_external_pad(
self.major_ticks._ticksize * dpi_cor)
ticklabel_pad = self.major_ticks._ticksize * dpi_cor
self.major_ticklabels._external_pad = ticklabel_pad
self.minor_ticklabels._external_pad = ticklabel_pad
else:
self.major_ticklabels._set_external_pad(0)
self.minor_ticklabels._set_external_pad(0)
self.major_ticklabels._external_pad = 0
self.minor_ticklabels._external_pad = 0

majortick_iter, minortick_iter = \
self._axis_artist_helper.get_tick_iterators(self.axes)
Expand Down Expand Up @@ -970,7 +943,7 @@ def _update_label(self, renderer):
axislabel_pad = max(self.major_ticklabels._axislabel_pad,
self.minor_ticklabels._axislabel_pad)

self.label._set_external_pad(axislabel_pad)
self.label._external_pad = axislabel_pad

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

x, y = xy
self.label._set_ref_angle(angle_label+self._axislabel_add_angle)
self.label._ref_angle = angle_label + self._axislabel_add_angle
self.label.set(x=x, y=y)

def _draw_label(self, renderer):
Expand Down
8 changes: 4 additions & 4 deletions lib/mpl_toolkits/tests/test_axisartist_axis_artist.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ def test_labelbase():
ax.plot([0.5], [0.5], "o")

label = LabelBase(0.5, 0.5, "Test")
label._set_ref_angle(-90)
label._set_offset_radius(offset_radius=50)
label._ref_angle = -90
label._offset_radius = 50
label.set_rotation(-90)
label.set(ha="center", va="top")
ax.add_artist(label)
Expand Down Expand Up @@ -67,8 +67,8 @@ def test_ticklabels():

ax.plot([0.5], [0.5], "s")
axislabel = AxisLabel(0.5, 0.5, "Test")
axislabel._set_offset_radius(20)
axislabel._set_ref_angle(0)
axislabel._offset_radius = 20
axislabel._ref_angle = 0
axislabel.set_axis_direction("bottom")
ax.add_artist(axislabel)

Expand Down
0