轴上科学记数法的字体大小不一致

Posted

技术标签:

【中文标题】轴上科学记数法的字体大小不一致【英文标题】:Inconsistent font size for scientific notation in axis 【发布时间】:2014-02-26 01:12:43 【问题描述】:

我正在尝试绘制 x 轴以科学计数法显示的图。我发现如何做到这一点的方法是使用 ticklabel_format 函数。不幸的是,这不尊重我分配给轴中显示的数字的字体大小,请参见下图:

即使我设置了相同的标签大小,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()

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于轴上科学记数法的字体大小不一致的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas 科学记数法不一致

与科学记数法 kableExtra table R markdown html 结合时,十进制后的数字不一致

xssfworkbook 怎么解决科学计算法

抑制 matplotlib 中的科学记数法 offsetText

Matlab:用于发布的比例数字 - 精确尺寸和字体大小

Qwt 关闭轴标签的科学记数法