在 matplotlib 尺度上禁用科学记数法

Disabling scientific notation on a scale matplotlib

我正在尝试在 y 尺度上使用非科学记数法制作图表。我的代码如下所示:

fig = mpl.figure(figsize=(10, 6))
ax = fig.add_subplot(111)
ax.semilogy(x,(y-0.9*best_vals[0]),'--',color = 'gray', lw = 1,fillstyle = 'none', label = 'experiment')
ax.semilogy(x[start:],(y_fit-0.9*best_vals[0]),'r-', label = '4-exponential fit')

ax.set_xlim(0,5000)
ax.set_ylim(1e2,1e6)
ax.yaxis.set_major_formatter(ScalarFormatter())

如果 y 刻度的上限设置为 1e5,y 刻度为 100、1000、10000、100000 时看起来非常好。但是当我尝试将其设置为 1e6 时,y 符号变为科学符号,上限为 0.1e7 .有没有机会强制它为 1000000 而不是 0.1e7?提前谢谢你。

您可以使用

禁用科学记数法
ax.get_yaxis().get_major_formatter().set_scientific(False)