Skip to content

Commit ac01f12

Browse files
authored
Merge pull request #17209 from anntzer/aa
Simplify some axisartist code.
2 parents 6372f1d + 0ea082c commit ac01f12

File tree

1 file changed

+12
-33
lines changed

1 file changed

+12
-33
lines changed

lib/mpl_toolkits/axisartist/axis_artist.py

+12-33
Original file line numberDiff line numberDiff line change
@@ -245,32 +245,25 @@ def draw(self, renderer):
245245
if not self.get_visible():
246246
return
247247

248-
size = self._ticksize
249-
path_trans = self.get_transform()
250-
251248
gc = renderer.new_gc()
252249
gc.set_foreground(self.get_markeredgecolor())
253250
gc.set_linewidth(self.get_markeredgewidth())
254251
gc.set_alpha(self._alpha)
255252

256-
offset = renderer.points_to_pixels(size)
257-
marker_scale = Affine2D().scale(offset)
258-
253+
path_trans = self.get_transform()
254+
marker_transform = (Affine2D()
255+
.scale(renderer.points_to_pixels(self._ticksize)))
259256
if self.get_tick_out():
260-
add_angle = 180
261-
else:
262-
add_angle = 0
263-
264-
marker_rotation = Affine2D()
265-
marker_transform = marker_scale + marker_rotation
257+
marker_transform.rotate_deg(180)
266258

267259
for loc, angle in self.locs_angles:
268-
marker_rotation.clear().rotate_deg(angle + add_angle)
269260
locs = path_trans.transform_non_affine(np.array([loc]))
270261
if self.axes and not self.axes.viewLim.contains(*locs[0]):
271262
continue
272-
renderer.draw_markers(gc, self._tickvert_path, marker_transform,
273-
Path(locs), path_trans.get_affine())
263+
renderer.draw_markers(
264+
gc, self._tickvert_path,
265+
marker_transform + Affine2D().rotate_deg(angle),
266+
Path(locs), path_trans.get_affine())
274267

275268
gc.restore()
276269

@@ -325,21 +318,15 @@ def draw(self, renderer):
325318
# save original and adjust some properties
326319
tr = self.get_transform()
327320
angle_orig = self.get_rotation()
328-
329-
offset_tr = Affine2D()
330-
self.set_transform(tr+offset_tr)
331-
332321
text_ref_angle = self._get_text_ref_angle()
333322
offset_ref_angle = self._get_offset_ref_angle()
334-
335323
theta = np.deg2rad(offset_ref_angle)
336324
dd = self._get_offset_radius()
337325
dx, dy = dd * np.cos(theta), dd * np.sin(theta)
338-
offset_tr.translate(dx, dy)
326+
327+
self.set_transform(tr + Affine2D().translate(dx, dy))
339328
self.set_rotation(text_ref_angle+angle_orig)
340329
super().draw(renderer)
341-
offset_tr.clear()
342-
343330
# restore original properties
344331
self.set_transform(tr)
345332
self.set_rotation(angle_orig)
@@ -348,23 +335,15 @@ def get_window_extent(self, renderer):
348335
# save original and adjust some properties
349336
tr = self.get_transform()
350337
angle_orig = self.get_rotation()
351-
352-
offset_tr = Affine2D()
353-
self.set_transform(tr+offset_tr)
354-
355338
text_ref_angle = self._get_text_ref_angle()
356339
offset_ref_angle = self._get_offset_ref_angle()
357-
358340
theta = np.deg2rad(offset_ref_angle)
359341
dd = self._get_offset_radius()
360342
dx, dy = dd * np.cos(theta), dd * np.sin(theta)
361-
offset_tr.translate(dx, dy)
362-
self.set_rotation(text_ref_angle+angle_orig)
363343

344+
self.set_transform(tr + Affine2D().translate(dx, dy))
345+
self.set_rotation(text_ref_angle+angle_orig)
364346
bbox = super().get_window_extent(renderer).frozen()
365-
366-
offset_tr.clear()
367-
368347
# restore original properties
369348
self.set_transform(tr)
370349
self.set_rotation(angle_orig)

0 commit comments

Comments
 (0)