代码之家  ›  专栏  ›  技术社区  ›  Max Ghenis shoyer

使用对数轴时刻度标签中的小数不一致

  •  1
  • Max Ghenis shoyer  · 技术社区  · 5 年前

    我试图创建一个带有对数y轴和整数刻度标签的绘图,但最多只能得到不一致的小数。

    最简单的方法给出了科学的表示法:

    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    vals = [10, 20, 30]
    
    plt.scatter(vals, vals)
    ax = plt.gca()
    ax.set_yscale('log')
    

    First graph

    ax.yaxis.set_major_formatter(mpl.ticker.ScalarFormatter())
    

    Second graph

    在上面设置次要格式化程序会删除科学符号,但会留下不一致的小数:

    ax.yaxis.set_minor_formatter(mpl.ticker.ScalarFormatter())
    

    Graph 3

    如何获得所有整数刻度标签?

    0 回复  |  直到 5 年前
        1
  •  1
  •   ImportanceOfBeingErnest    5 年前

    例如,可以使用 StrMethodFormatter 用python的 g 格式:

    fmt = mpl.ticker.StrMethodFormatter("{x:g}")
    ax.yaxis.set_major_formatter(fmt)
    ax.yaxis.set_minor_formatter(fmt)
    

    enter image description here