关于python:轴上科学记数法的字体大小不一致

Inconsistent font size for scientific notation in axis

我正在尝试绘制x轴将以科学计数法显示的图。 我发现方法是使用ticklabel_format函数。 不幸的是,这不符合我分配给轴上显示的数字的字体大小,请参见下图:

enter image description here

即使我设置了相等的标签大小,1e-121e4也会以不同的字体大小显示。

我该如何解决? (下面是MWE)

1
2
3
4
5
6
7
8
9
10
11
12
13
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()

根据ticklabel_format文档,该函数不接受labelsize参数。

您可以使用matplotlib.rc更改字体大小:

1
plt.rc('font', size=7)

enter image description here


我猜这是因为科学表示没有被当作刻度标签,您可以使用:

1
2
import matplotlib
matplotlib.rc('font', size=7)

要么

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

并删除ax.tick_params中的labelsize=7