Matplotlib:在其他graphics元素后面绘制网格线
在Matplotlib中,我做了如下网格线:
fig = pylab.figure() ax = fig.add_subplot(1,1,1) ax.yaxis.grid(color='gray', linestyle='dashed')
但是,我无法find如何(或者即使有可能)使网格线被绘制在其他graphics元素(如条)之后。 改变添加网格的顺序与添加其他元素的顺序没有区别。
是否有可能使网格线出现在所有其他东西后面?
根据这个 – http://old.nabble.com/axis-elements-and-zorder-td6119088.html – 你可以使用Axis.set_axisbelow()
(我目前第一次安装matplotlib,所以不知道这是否正确 – 我只是通过使用googlesearch“matplotlib z order grid”来find它 – “z order”通常用来描述这种事情(z是轴“out of the page”))
对我来说,目前还不清楚如何申请cooke的答案,所以这是一个完整的解决scheme:
ax.set_axisbelow(True) ax.yaxis.grid(color='gray', linestyle='dashed')
如果你想validation所有数字的设置,你可以设置
plt.rc('axes', axisbelow=True)
要么
plt.rcParams['axes.axisbelow'] = True
它适用于Matplotlib> = 2.0。
我有同样的问题,以下工作:
[line.set_zorder(3) for line in ax.lines] fig.show() # to update
如果不起作用,则将3
增加到更高的值。