繁体   English   中英

pyplot使用yscale时更改y轴刻度标签

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM