在Matplotlib中,我做了如下虚线网格:
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
字符串
但是,我不知道如何(或者是否可能)将网格线绘制在其他图形元素(如条形图)的后面。更改添加网格的顺序与添加其他元素的顺序没有区别。
有没有可能使网格线出现在其他所有东西的后面?
在Matplotlib中,我做了如下虚线网格:
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
字符串
但是,我不知道如何(或者是否可能)将网格线绘制在其他图形元素(如条形图)的后面。更改添加网格的顺序与添加其他元素的顺序没有区别。
有没有可能使网格线出现在其他所有东西的后面?
9条答案
按热度按时间sd2nnvve1#
根据这个-http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html-你可以使用
Axis.set_axisbelow(True)
(我目前是第一次安装matplotlib,所以不知道这是否正确-我只是通过谷歌搜索“matplotlib z order grid”找到它-“z order”通常用于描述这种事情(z是“页面外”的轴))
9o685dep2#
对我来说,还不清楚如何应用安德鲁·库克的答案,所以这是一个基于此的完整解决方案:
字符串
8hhllhi23#
如果要验证所有图形的设置,可以设置
字符串
或者是
型
它适用于Matplotlib>=2.0。
wlsrxk514#
我遇到了同样的问题,以下方法起作用:
字符串
如果
3
不起作用,请将其增加到更高的值。ntjbwcob5#
也可以在
matplotlib.pyplot.grid
中设置zorder
kwarg字符串
yshpjwxd6#
您可以尝试使用Seaborn的样式之一。例如:
字符串
不仅网格线会落后,但看起来更好。
htzpubme7#
对于一些人(比如我)来说,只在其他元素的“一些”后面绘制网格可能会很有趣。对于绘制顺序的精细控制,可以直接在坐标轴上使用matplotlib.artist.Artist.set_zorder:
字符串
这在matplotlib.axes.Axes.grid的注解中提到。
tvz2xvvm8#
只需确保点的zorder值高于网格线,例如:
字符串
后面跟着
型
pnwntuvh9#
这些答案对我不起作用(
zorder
,axisbelow
,set_zorder
):字符串
相反,使用
patch_artist
更改图形元素的背景颜色对我来说很有效:型