首页 文章

使垂直网格线出现在matplotlib中的折线图中

提问于
浏览
61

我希望在我的绘图上同时获得水平和垂直网格线,但默认情况下只显示水平网格线 . 我在python中使用来自SQL查询的 pandas.DataFrame 来生成x轴上带日期的线图 . 我找到了一个 .

我用来绘制图表的所有内容都是下面的简单代码 .

data.plot()
grid('on')

data是DataFrame,它包含sql查询中的日期和数据 .

我也试过添加下面的代码,但我仍然得到相同的输出没有垂直网格线 .

ax = plt.axes()        
ax.yaxis.grid() # horizontal lines
ax.xaxis.grid() # vertical lines

有什么建议?

enter image description here

4 回答

  • 4

    你可能需要在你的电话中给出布尔arg,例如使用 ax.yaxis.grid(True) 而不是 ax.yaxis.grid() . 此外,由于您使用它们两者,因此可以组合成 ax.grid ,它可以同时适用于两者,而不是每个维度执行一次 .

    ax = plt.gca()
    ax.grid(True)
    

    那应该是你排除 .

  • 34

    According to matplotlib documentationAxesgrid() 方法的签名如下:

    Axes.grid(b = None,其中='major',axis ='both',** kwargs)打开或关闭轴网格 . 可以是“主要”(默认),“次要”或“两者”来控制是否影响主要的刻度网格,次要刻度网格或两者 . axis可以是'both'(默认),'x'或'y'来控制绘制哪组网格线 .

    因此,为了显示x轴和y轴的网格线,我们可以使用以下代码:

    ax = plt.gca()
    ax.grid(which='major', axis='both', linestyle='--')
    

    这种方法使我们能够更好地控制网格线的显示内容 .

  • 9

    也许这可以解决问题:matplotlib, define size of a grid on a plot

    ax.grid(True, which='both')
    

    事实是网格正在运行,但是00:00只有一个v网格而其他网格没有网格 . 我遇到了同样的问题,即11月1日中只有一个网格 .

  • 70

    plt.gca().xaxis.grid(True) 被证明是我的解决方案

相关问题