【问题标题】:How to have customized ticks? [duplicate]如何自定义刻度? [复制]
【发布时间】:2018-08-10 22:48:53
【问题描述】:

我在下面制作了一个对数比例图。

如何在没有科学计数法的情况下显示常规刻度?

如何自定义不同格式组合的刻度?

plt.plot(np.arange(1000))
plt.xscale('log')
plt.yscale('log')
plt.ylim(1,10)
plt.show()

【问题讨论】:

    标签: python python-3.x matplotlib plot scientific-notation


    【解决方案1】:

    因为您说您尝试过these solutions,但它们不起作用,我怀疑这是因为您在将scale 设置为log 之前调用了ax.yaxis.set_major_formatter 。如果你这样做,当你说 plt.xscale('log')plt.yscale('log') 时,它会重置 x 和 y 轴。

    如果你之后调用它,它会起作用:

    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    fig = plt.figure()
    ax = fig.add_subplot(1,1,1)
    
    plt.plot(np.arange(1000))
    plt.xscale('log')
    plt.yscale('log')
    
    ax.yaxis.set_major_formatter(mpl.ticker.ScalarFormatter())
    ax.xaxis.set_major_formatter(mpl.ticker.ScalarFormatter())
    
    plt.show()
    

    【讨论】:

    • 谢谢。我必须使用ax = fig.add_subplot(1,1,1) 吗?我可以直接使用plt 吗?
    • 你可以使用plt.gca().yaxis.set_major_formatter(mpl.ticker.ScalarFormatter())plt.gca().xaxis.set_major_formatter(mpl.ticker.ScalarFormatter())如果你想
    • 谢谢。使用 fig = plt.figure()ax = fig.add_subplot(1,1,1) 的目的是什么?为了使代码整洁,为什么不直接使用plt
    • 这只是一种显式创建轴对象的方法,有时更容易引用实际的轴。
    • 谢谢。我重新编辑了问题并添加了plt.ylim(1,10),现在它不再起作用了。顺便说一句,新的刻度有小数点,我怎样才能去掉它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多