Skip to content

Commit fd05461

Browse files
committed
improve arg name, docstring, add test
1 parent b59d8a3 commit fd05461

File tree

2 files changed

+25
-13
lines changed

2 files changed

+25
-13
lines changed

lib/matplotlib/tests/test_text.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
import warnings
44

55
import numpy as np
6-
from numpy.testing import assert_almost_equal
76
import pytest
7+
from numpy.testing import assert_almost_equal
88

99
import matplotlib as mpl
1010
from matplotlib.backend_bases import MouseEvent
1111
import matplotlib.patches as mpatches
1212
import matplotlib.pyplot as plt
13+
import matplotlib.transforms as mtransforms
14+
from matplotlib.backend_bases import MouseEvent
1315
from matplotlib.testing.decorators import check_figures_equal, image_comparison
1416

15-
1617
needs_usetex = pytest.mark.skipif(
1718
not mpl.checkdep_usetex(True),
1819
reason="This test needs a TeX installation")
@@ -689,3 +690,12 @@ def test_fontproperties_kwarg_precedence():
689690
text2 = plt.ylabel("counts", size=40.0, fontproperties='Times New Roman')
690691
assert text1.get_size() == 40.0
691692
assert text2.get_size() == 40.0
693+
694+
695+
def test_transform_rotates_text():
696+
ax = plt.gca()
697+
transform = mtransforms.Affine2D().rotate_deg(30)
698+
text = ax.text(0, 0, 'test', transform=transform,
699+
transform_rotates_text=True)
700+
result = text.get_rotation()[0]
701+
assert_almost_equal(result, 30)

lib/matplotlib/text.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ def __init__(self,
136136
rotation_mode=None,
137137
usetex=None, # defaults to rcParams['text.usetex']
138138
wrap=False,
139-
rotation_transformed=False,
139+
transform_rotates_text=False,
140140
**kwargs
141141
):
142142
"""
@@ -158,7 +158,7 @@ def __init__(self,
158158
self.set_horizontalalignment(horizontalalignment)
159159
self._multialignment = multialignment
160160
self._rotation = rotation
161-
self._rotation_transformed = rotation_transformed
161+
self._transform_rotates_text = transform_rotates_text
162162
self._bbox_patch = None # a FancyBboxPatch instance
163163
self._renderer = None
164164
if linespacing is None:
@@ -230,16 +230,18 @@ def _get_multialignment(self):
230230

231231
def get_rotation(self):
232232
"""Return the text angle in degrees between 0 and 360."""
233-
if self.get_rotation_transformed():
233+
if self.get_transform_rotates_text():
234234
angle = get_rotation(self._rotation)
235235
x, y = self.get_unitless_position()
236236
return self.get_transform().transform_angles([angle, ], [[x, y]])
237237
else:
238238
return get_rotation(self._rotation) # string_or_number -> number
239239

240-
def get_rotation_transformed(self):
241-
"""Return if the text rotation get transformed or not."""
242-
return self._rotation_transformed
240+
def get_transform_rotates_text(self):
241+
"""
242+
Return whether rotations of the transform affect the text direction.
243+
"""
244+
return self._transform_rotates_text
243245

244246
def set_rotation_mode(self, m):
245247
"""
@@ -270,7 +272,7 @@ def update_from(self, other):
270272
self._fontproperties = other._fontproperties.copy()
271273
self._usetex = other._usetex
272274
self._rotation = other._rotation
273-
self._rotation_transformed = other._rotation_transformed
275+
self._transform_rotates_text = other._transform_rotates_text
274276
self._picker = other._picker
275277
self._linespacing = other._linespacing
276278
self.stale = True
@@ -855,7 +857,7 @@ def get_prop_tup(self, renderer=None):
855857
self._verticalalignment, self._horizontalalignment,
856858
hash(self._fontproperties),
857859
self._rotation, self._rotation_mode,
858-
self._rotation_transformed,
860+
self._transform_rotates_text,
859861
self.figure.dpi, weakref.ref(renderer),
860862
self._linespacing
861863
)
@@ -1145,15 +1147,15 @@ def set_rotation(self, s):
11451147
self._rotation = s
11461148
self.stale = True
11471149

1148-
def set_rotation_transformed(self, t):
1150+
def set_transform_rotates_text(self, t):
11491151
"""
1150-
Set if the text rotation get transformed or not.
1152+
Whether rotations of the transform affect the text direction.
11511153
11521154
Parameters
11531155
----------
11541156
t : bool
11551157
"""
1156-
self._rotation_transformed = t
1158+
self._transform_rotates_text = t
11571159
self.stale = True
11581160

11591161
def set_verticalalignment(self, align):

0 commit comments

Comments
 (0)