Python Matplotlib 设置坐标轴刻度以10为底

2020-10-28  本文已影响0人  王叽叽的小心情

在python绘图中,针对对数坐标轴设置,有以下三种方法:

# 方法1 
axs.set_xscale('log')
# 方法2
axs.semilogx()
# 方法3
logfmt = matplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=True)
axs.xaxis.set_major_formatter(logfmt)

其中第三种可自行设置其他格式(如科学计数法等)格式的坐标轴刻度。纵坐标轴同理。这个时候的结果长这个样子。


直接对数坐标系下的坐标轴标签显示结果

但更多的情况下,我们的横坐标的值本来就是取完对数的,想要将标签设置为以10为底的,方法如下:

def mjrFormatter(x, pos):
    return "$10^{{{0}}}$".format(x)
axs.xaxis.set_major_formatter(mpl.ticker.FuncFormatter(mjrFormatter))

得到的结果长这样子


自定义以10为底的坐标轴标签

可以看出后者的指数不是整数,二者还是有差别的。

参考资料
https://stackoverflow.com/questions/15123928/matplotlib-change-yaxis-tick-labels

上一篇下一篇

猜你喜欢

热点阅读