我有一个形象:
在y轴上,我想得到5x10^-5 4x10^-5
等等,而不是0.00005 0.00004
。
到目前为止,我所尝试的是:
fig = plt.figure()
ax = fig.add_subplot(111)
y_formatter = matplotlib.ticker.ScalarFormatter(useOffset=True)
ax.yaxis.set_major_formatter(y_formatter)
ax.plot(m_plot,densities1,'-ro',label='0.0<z<0.5')
ax.plot(m_plot,densities2, '-bo',label='0.5<z<1.0')
ax.legend(loc='best',scatterpoints=1)
plt.legend()
plt.show()
这似乎不起作用。用于股票报价器的document page似乎没有提供直接的答案。
2条答案
按热度按时间rseugnpd1#
您可以使用
matplotlib.ticker.FuncFormatter
来选择刻度的格式,如下面的示例代码所示。实际上,该函数所做的全部工作就是将输入(浮点数)转换为指数记数法,然后将'e'替换为'x10^',这样您就得到了所需的格式。如果你愿意使用指数符号(例如5.0e-6.0),那么有一个更简洁的解决方案,你可以使用
matplotlib.ticker.FormatStrFormatter
来选择一个格式字符串,如下所示。字符串格式由标准的Python字符串格式规则给出。fhg3lkii2#
只是对解决方案进行了一个简短的修改,以获得更好的字符串格式:我建议更改format函数以包含latex: