如何防止在Python matplotlib图中将数字改变为指数forms
我在Python中使用Matplotlib来绘制简单的xy数据集。 这会产生漂亮的graphics,但是当使用graphics视图(在执行plt.show()
时出现)在绘制graphics的各个部分上“放大”时,x轴值将从标准数字forms(1050,1060,1070等)以指数符号(例如+1.057e3
,x轴标签给出为+1.057e3
)科学forms。
我宁愿我的数字保留轴的简单编号,而不是使用指数forms。 有没有办法强制Matplotlib做到这一点?
刻度标签的格式由Formatter
对象控制,假设你没有做任何事情,默认情况下是ScalerFormatter
。 如果可见值的分数变化非常小,则此格式化程序将使用常量移位。 为了避免这种情况,只需closures它:
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.useoffset
rcparam全局控制。
你可以使用像这样的东西:
from matplotlib.ticker import ScalarFormatter, FormatStrFormatter ax.xaxis.set_major_formatter(FormatStrFormatter('%.0f'))
您可以使用一个更简单的命令来closures它:
plt.ticklabel_format(useOffset=False)