【问题标题】:Matplotlib: draw grid lines behind other graph elementsMatplotlib:在其他图形元素后面绘制网格线
【发布时间】:2010-12-16 03:10:02
【问题描述】:

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

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

但是,我不知道如何(或者即使有可能)将网格线绘制在其他图形元素(例如条形图)后面。更改添加网格的顺序与添加其他元素没有区别。

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

【问题讨论】:

  • ax.set_axisbelow(True) 仍然有效。也很适合 pdf 输出...
  • 我本来希望 ax.set_axisbelow(True) 成为默认值...

标签: python matplotlib grid


【解决方案1】:

据此——http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html——你可以使用Axis.set_axisbelow(True)

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

【讨论】:

【解决方案2】:

对我来说,不清楚如何应用安德鲁库克的答案,所以这是一个基于此的完整解决方案:

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

【讨论】:

    【解决方案3】:

    如果您想验证所有数字的设置,您可以设置

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

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

    适用于 Matplotlib>=2.0。

    【讨论】:

    • 最佳答案,因为人们可能希望这在所有数字中保持一致。
    【解决方案4】:

    我遇到了同样的问题,以下方法有效:

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

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

    【讨论】:

      【解决方案5】:

      您可以尝试使用 Seaborn 的一种样式。例如:

      import seaborn as sns  
      sns.set_style("whitegrid")
      

      不仅网格线会落后,而且外观会更好。

      【讨论】:

        【解决方案6】:

        你也可以在matplotlib.pyplot.grid中设置zorder kwarg

        plt.grid(which='major', axis='y', zorder=-1.0)
        

        【讨论】:

        • 对我不起作用
        • @HomeroEsmeraldo 你必须在其他所有被绘制的东西上设置zorder
        【解决方案7】:

        对于某些人(比如我)来说,仅在“一些”其他元素后面绘制网格可能会很有趣。对于绘制顺序的精细控制,您可以直接在轴上使用matplotlib.artist.Artist.set_zorder

        ax.yaxis.grid(color='gray', linestyle='dashed')
        ax.set_zorder(3)
        

        matplotlib.axes.Axes.grid 的注释中提到了这一点。

        【讨论】:

          猜你喜欢
          • 2014-06-14
          • 1970-01-01
          • 1970-01-01
          • 2019-03-25
          • 1970-01-01
          • 2020-08-15
          • 2013-12-20
          • 1970-01-01
          相关资源
          最近更新 更多