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

Skip to content

Commit 732910c

Browse files
committed
Adding usetex, useMathText to EngFormatter + test
1 parent fc9a1ef commit 732910c

2 files changed

Lines changed: 32 additions & 12 deletions

File tree

lib/matplotlib/tests/test_ticker.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -788,17 +788,18 @@ def test_params(self, input, expected):
788788
assert _formatter(input) == _exp_output
789789

790790

791-
def test_engformatter_mathtext():
791+
def test_engformatter_usetex_useMathText():
792792
fig, ax = plt.subplots()
793793
ax.plot([0, 500, 1000], [0, 500, 1000])
794794
ax.set_xticks([0, 500, 1000])
795-
formatter = mticker.EngFormatter(useMathText=True)
796-
ax.xaxis.set_major_formatter(formatter)
797-
fig.canvas.draw()
798-
x_tick_label_text = [label.get_text() for label in ax.get_xticklabels()]
799-
# Checking if the dollar `$` signs have been inserted around numbers
800-
# in tick label text.
801-
assert x_tick_label_text == ['$0$', '$500$', '$1$ k']
795+
for formatter in (mticker.EngFormatter(usetex=True),
796+
mticker.EngFormatter(useMathText=True)):
797+
ax.xaxis.set_major_formatter(formatter)
798+
fig.canvas.draw()
799+
x_tick_label_text = [labl.get_text() for labl in ax.get_xticklabels()]
800+
# Checking if the dollar `$` signs have been inserted around numbers
801+
# in tick labels.
802+
assert x_tick_label_text == ['$0$', '$500$', '$1$ k']
802803

803804

804805
class TestPercentFormatter(object):

lib/matplotlib/ticker.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,7 +1200,8 @@ class EngFormatter(Formatter):
12001200
24: "Y"
12011201
}
12021202

1203-
def __init__(self, unit="", places=None, sep=" ", useMathText=None):
1203+
def __init__(self, unit="", places=None, sep=" ", usetex=None,
1204+
useMathText=None):
12041205
"""
12051206
Parameters
12061207
----------
@@ -1226,14 +1227,32 @@ def __init__(self, unit="", places=None, sep=" ", useMathText=None):
12261227
* ``sep="\\N{THIN SPACE}"`` (``U+2009``);
12271228
* ``sep="\\N{NARROW NO-BREAK SPACE}"`` (``U+202F``);
12281229
* ``sep="\\N{NO-BREAK SPACE}"`` (``U+00A0``).
1230+
`
1231+
usetex : bool (default: None)
1232+
To enable/disable the use of TeX's math mode for rendering the
1233+
numbers in the formatter.
1234+
1235+
useMathText : bool (default: None)
1236+
To enable/disable the use mathtext for rendering the numbers in
1237+
the formatter.
12291238
"""
12301239
self.unit = unit
12311240
self.places = places
12321241
self.sep = sep
1233-
if useMathText is None:
1234-
useMathText = rcParams['axes.formatter.use_mathtext']
1242+
self.set_usetex(usetex)
12351243
self.set_useMathText(useMathText)
12361244

1245+
def get_usetex(self):
1246+
return self._usetex
1247+
1248+
def set_usetex(self, val):
1249+
if val is None:
1250+
self._usetex = rcParams['text.usetex']
1251+
else:
1252+
self._usetex = val
1253+
1254+
usetex = property(fget=get_usetex, fset=set_usetex)
1255+
12371256
def get_useMathText(self):
12381257
return self._useMathText
12391258

@@ -1295,7 +1314,7 @@ def format_eng(self, num):
12951314
pow10 += 3
12961315

12971316
prefix = self.ENG_PREFIXES[int(pow10)]
1298-
if self._useMathText:
1317+
if self._usetex or self._useMathText:
12991318
formatted = "${mant:{fmt}}${sep}{prefix}".format(
13001319
mant=mant, sep=self.sep, prefix=prefix, fmt=fmt)
13011320
else:

0 commit comments

Comments
 (0)