【问题标题】:How to get the minor axis grid on the semilogy plot in matplotlib?如何在 matplotlib 的符号图上获得短轴网格?
【发布时间】:2020-04-27 10:07:31
【问题描述】:

我正在使用符号图,但我正在努力打开小网格。

我正在使用:

plt.grid(b=None, which='major', axis='both', color='k', linestyle='-', linewidth=0.5)
plt.grid(b=None, which='minor', axis='both', color='r', linestyle='-', linewidth=0.2)

但它不会只产生次要网格。

更新:

所以我现在的代码是:

    plt.semilogy(xPS[p-1]/1000, zPS[p-1])
    plt.ylim(-1000000, 1000000)
    plt.xlim(0, 250)
    plt.grid(b=True, which='major', color='k', linestyle='-')
    plt.grid(b=True, which='minor', color='r', linestyle='-', alpha=0.2)
    plt.minorticks_on()
    plt.show()

我得到如下图所示的输出,但仍然不是 y-minor 网格:

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    尝试在上述两行之后添加minorticks_on 调用:

    plt.minorticks_on()
    

    完整代码:

    import matplotlib.pyplot as plt
    
    plt.semilogy(
        [20,50,100,140,180,220,250],
        [2, 45*10, 314*10**2, 42*10**3, 475*10**3, 431*10**3, 904*10**3])
    plt.ylim(1, 1000000)
    plt.xlim(0, 250)
    plt.grid(b=True, which='major', color='k', linestyle='-')
    plt.grid(b=True, which='minor', color='r', linestyle='-', alpha=0.2)
    plt.minorticks_on()
    plt.show()
    

    输出

    这是discussion 中解释的已知问题。

    【讨论】:

    • 嗨,@Alexandre B。我试过这个,但它仍然没有把短轴放在 y 上。
    • @15002941 更新是什么?您使用的是哪个 Python Matplotlib 版本?
    • 跟y轴的范围有关。如果增加到plt.ylim(0.0001, 1000000),则不会绘制次要网格线,可能是为了保持绘图速度相对较快并防止绘图被网格线过度拥挤
    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    相关资源
    最近更新 更多