坐标轴科学计数法字体大小不一致

6
我正在尝试制作一个图表,其中x轴将以科学计数法显示。我发现可以使用ticklabel_format函数来实现此功能。不幸的是,这样做并不尊重我为轴上显示的数字分配的字体大小,如下图所示: enter image description here 即使我设置了相等的标签大小,1e-121e4也以不同的字体大小显示。
我应该如何解决这个问题?(以下是MWE
import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 10000.0, 10.)
s = np.sin(np.pi*t)*np.exp(-t*0.0001)

fig, ax = plt.subplots()

ax.tick_params(axis='both', which='major', labelsize=7)
plt.ticklabel_format(style='sci', axis='x', scilimits=(0,0), labelsize=7)
plt.plot(t,s)

plt.show()
3个回答

4
我认为这会对你有所帮助,而不需要改变全局设置:
ax.yaxis.get_offset_text().set_fontsize(size)

3

这似乎不适用于更大的字体大小(例如35)。标签的字体保持较小。 - Stanley Bak
1
@StanleyBak,在 import 语句后面立即调用 plt.rc('font', ...)。https://i.imgur.com/371NoUz.png - falsetru

2
我猜这是因为科学表示法没有被视为刻度标签,你可以使用:
import matplotlib
matplotlib.rc('font', size=7)

或者

matplotlib.rcParams['font.size']=7

并且在ax.tick_params中删除labelsize=7


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接