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

在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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容