![](/img/trans.png)
[英]override y axis tick labels without affecting the graph shape in pyplot
[英]pyplot change y-axis tick labels when using yscale
我有一个基于e
的半对数图,它看起来像那样。 如何摆脱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')
(顺便说一句,开始的三行代码是我所缺少的错误条大写字母。在此解决方案之后继续 )
最简单的方法是编写自己的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))
导致下图:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.