轴上科学记数法的字体大小不一致
Posted
技术标签:
【中文标题】轴上科学记数法的字体大小不一致【英文标题】:Inconsistent font size for scientific notation in axis 【发布时间】:2014-02-26 01:12:43 【问题描述】:我正在尝试绘制 x 轴以科学计数法显示的图。我发现如何做到这一点的方法是使用 ticklabel_format
函数。不幸的是,这不尊重我分配给轴中显示的数字的字体大小,请参见下图:
即使我设置了相同的标签大小,1e-12
和 1e4
也会以不同的字体大小显示。
我该如何解决这个问题? (下面是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()
【问题讨论】:
【参考方案1】:根据ticklabel_format
documentation,函数不接受labelsize
参数。
您可以使用matplotlib.rc
更改字体大小:
plt.rc('font', size=7)
【讨论】:
这似乎不适用于较大的字体大小(例如 35)。标签的字体保持较小。 @StanleyBak,在import
声明之后致电plt.rc('font', ...)
。 i.imgur.com/371NoUz.png【参考方案2】:
我猜是因为科学表示不被视为刻度标签,您可以使用:
import matplotlib
matplotlib.rc('font', size=7)
或
matplotlib.rcParams['font.size']=7
并在ax.tick_params
中删除labelsize=7
【讨论】:
【参考方案3】:我认为这会对您有所帮助,而无需更改全局设置:
ax.yaxis.get_offset_text().set_fontsize(size)
【讨论】:
以上是关于轴上科学记数法的字体大小不一致的主要内容,如果未能解决你的问题,请参考以下文章
与科学记数法 kableExtra table R markdown html 结合时,十进制后的数字不一致