美文网首页
Python Matplotlib 设置坐标轴刻度以10为底

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

作者: 王叽叽的小心情 | 来源:发表于2020-10-28 22:04 被阅读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

    相关文章

      网友评论

          本文标题:Python Matplotlib 设置坐标轴刻度以10为底

          本文链接:https://www.haomeiwen.com/subject/kgqhvktx.html