我有一个基于e
的semilog图,看起来就像那样。如何摆脱2.71...
的数字呈现,而是将其显示为e
?
plt.figure()
(_, caps, _) = plt.errorbar(xarr, yarr, xerr=xarr_stddev, yerr=yarr_stddev, fmt='.', markersize=1, linewidth=0.25, capsize=1)
for cap in caps:
cap.set_markeredgewidth(0.25)
plt.grid()
plt.xlabel(r"$t$ [s]")
plt.ylabel(r"$dV/dt$ [V/s]")
plt.yscale('log', basey=np.e)
plt.title('Decay')
plt.savefig("plot_1.pdf", papertype = 'a4', format = 'pdf')
(顺便说一下,开头的三行代码是针对我的错误栏上限。在this solution后继续)
答案 0 :(得分:2)
最简单的方法是编写自己的FuncFormatter
并将其用于Y轴。添加以下行
from matplotlib.ticker import FuncFormatter
def format_labels(x, pos):
return "e$^{%i}$" % np.log(x)
到图表并将格式化程序设置在savefig
行的正上方:
plt.gca().yaxis.set_major_formatter(FuncFormatter(format_labels))
导致以下图表: