MCPcopy Index your code
hub / github.com/matplotlib/matplotlib / update_position

Method update_position

lib/matplotlib/projections/polar.py:335–379  ·  view source on GitHub ↗
(self, loc)

Source from the content-addressed store, hash-verified

333 self._text2_translate.invalidate()
334
335 def update_position(self, loc):
336 super().update_position(loc)
337 axes = self.axes
338 angle = loc * axes.get_theta_direction() + axes.get_theta_offset()
339 text_angle = np.rad2deg(angle) % 360 - 90
340 angle -= np.pi / 2
341
342 marker = self.tick1line.get_marker()
343 if marker in (mmarkers.TICKUP, '|'):
344 trans = mtransforms.Affine2D().scale(1, 1).rotate(angle)
345 elif marker == mmarkers.TICKDOWN:
346 trans = mtransforms.Affine2D().scale(1, -1).rotate(angle)
347 else:
348 # Don't modify custom tick line markers.
349 trans = self.tick1line._marker._transform
350 self.tick1line._marker._transform = trans
351
352 marker = self.tick2line.get_marker()
353 if marker in (mmarkers.TICKUP, '|'):
354 trans = mtransforms.Affine2D().scale(1, 1).rotate(angle)
355 elif marker == mmarkers.TICKDOWN:
356 trans = mtransforms.Affine2D().scale(1, -1).rotate(angle)
357 else:
358 # Don't modify custom tick line markers.
359 trans = self.tick2line._marker._transform
360 self.tick2line._marker._transform = trans
361
362 mode, user_angle = self._labelrotation
363 if mode == 'default':
364 text_angle = user_angle
365 else:
366 if text_angle > 90:
367 text_angle -= 180
368 elif text_angle < -90:
369 text_angle += 180
370 text_angle += user_angle
371 self.label1.set_rotation(text_angle)
372 self.label2.set_rotation(text_angle)
373
374 # This extra padding helps preserve the look from previous releases but
375 # is also needed because labels are anchored to their center.
376 pad = self._pad + 7
377 self._update_padding(pad,
378 self._loc * axes.get_theta_direction() +
379 axes.get_theta_offset())
380
381
382class ThetaAxis(maxis.XAxis):

Callers 1

update_positionMethod · 0.45

Calls 7

_update_paddingMethod · 0.95
get_theta_directionMethod · 0.80
get_theta_offsetMethod · 0.80
set_rotationMethod · 0.80
get_markerMethod · 0.45
rotateMethod · 0.45
scaleMethod · 0.45

Tested by

no test coverage detected