一尘不染

如何防止数字在Python matplotlib图中更改为指数形式

python

我在Python中使用Matplotlib绘制简单的xy数据集。这会产生漂亮的图形,尽管当我使用“图形视图”(执行时出现plt.show())在绘图图形的各个部分上“放大”得太近时,x轴值也会从标准数字格式(1050、1060, 1070等)转换成具有指数符号的科学形式(例如x,x轴标记为的1、1.5、2.0 +1.057e3)。

我希望我的图形保留轴的简单编号,而不要使用指数形式。有没有一种方法可以强制Matplotlib执行此操作?


阅读 980

收藏
2020-02-22

共1个答案

一尘不染

勾号标签的格式由Formatter对象控制ScalerFormatter,默认情况下,假设你未做任何花哨的操作,它将是。如果可见值的分数变化很小,则此格式化程序将使用恒定移位。为了避免这种情况,只需将其关闭:

plt.plot(arange(0,100,10) + 1000, arange(0,100,10))
ax = plt.gca()
ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.draw()

如果你想避免普遍采用科学计数法,

ax.get_xaxis().get_major_formatter().set_scientific(False)

可以通过axes.formatter.useoffsetrcparam 全局控制。

2020-02-22