如何防止matplotlib中轴偏移的科学记数法?

Posted

技术标签:

【中文标题】如何防止matplotlib中轴偏移的科学记数法?【英文标题】:How to prevent scientific notation in the axis offset in matplotlib? 【发布时间】:2022-01-22 03:13:03 【问题描述】:

我有一个 y 轴偏移量为5.223e1 的图。我宁愿只说52.23。这个可以吗?

与这个问题不同:prevent scientific notation in matplotlib.pyplot,我有兴趣从偏移本身中删除科学记数法,而不是整个轴标签。我想保留偏移量,只是不要采用科学计数法。

【问题讨论】:

Seems similar. ^ 尽管那里有很多答案显然认为问题是关于关闭偏移量,而不是保留它并只是更改格式。 Also similar. 【参考方案1】:

我认为这只能通过继承和定义你自己的formatting function来实现。 最小的例子:

import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter

class my_ScalarFormatter(ScalarFormatter):
    def format_data(self, value):
        return f'value:.2f'

fig,(ax1,ax2) = plt.subplots(ncols=2)
ax2.yaxis.set_major_formatter(my_ScalarFormatter())
ax1.set_ylim(52.23, 52.231)
ax2.set_ylim(52.23, 52.231)
ax1.set_title('Default Formatter')
ax2.set_title('Custom Formatter')
plt.show()

【讨论】:

以上是关于如何防止matplotlib中轴偏移的科学记数法?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 matplotlib 中轴对象刻度的字体大小 [重复]

matplotlib 中轴标签文本顶部的位置是啥?

防止 matplotlib.pyplot 中的科学记数法[重复]

抑制 matplotlib 中的科学记数法 offsetText

我可以在 matplotlib 条形图中关闭科学记数法吗?

Matplotlib:指定刻度标签的浮点格式