首页 文章

Matplotlib:在其他图形元素后面绘制网格线

提问于
浏览
81

在Matplotlib中,我按如下方式制作虚线网格线:

fig = pylab.figure()    
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')

但是,我无法弄清楚如何(或者甚至可能)使网格线在其他图形元素(如条形图)后面绘制 . 更改添加网格与添加其他元素的顺序没有区别 .

是否有可能使网格线出现在其他所有的后面?

4 回答

  • 16

    根据这个 - http://old.nabble.com/axis-elements-and-zorder-td6119088.html - 你可以使用 Axis.set_axisbelow(True)

    (我目前正在第一次安装matplotlib,所以不知道这是否正确 - 我只是通过谷歌搜索“matplotlib z order grid” - “z order”通常用于描述这种事情(z是轴“在页面外”))

  • 78

    对我来说,目前还不清楚如何应用andrew cooke的答案,所以这是一个完整的解决方案,基于:

    ax.set_axisbelow(True)
    ax.yaxis.grid(color='gray', linestyle='dashed')
    
  • 57

    如果要验证 all 数字的设置,可以设置

    plt.rc('axes', axisbelow=True)
    

    要么

    plt.rcParams['axes.axisbelow'] = True
    

    它适用于Matplotlib> = 2.0 .

  • 7

    我有同样的问题,以下工作:

    [line.set_zorder(3) for line in ax.lines]
    fig.show() # to update
    

    如果不起作用,请将 3 增加到更高的值 .

相关问题