Python Matplotlib:在其他图形元素后面绘制网格线
在Matplotlib中,我按如下方式绘制虚线网格线:Python Matplotlib:在其他图形元素后面绘制网格线,python,matplotlib,grid,Python,Matplotlib,Grid,在Matplotlib中,我按如下方式绘制虚线网格线: fig = pylab.figure() ax = fig.add_subplot(1,1,1) ax.yaxis.grid(color='gray', linestyle='dashed') 但是,我不知道如何(或者即使有可能)在其他图形元素(如条形图)后面绘制网格线。更改添加网格的顺序与添加其他元素的顺序没有区别 有没有可能使网格线显示在其他所有网格线的后面?根据这一点,您可以使用Axis。将Axis设置为低于(True) (
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
但是,我不知道如何(或者即使有可能)在其他图形元素(如条形图)后面绘制网格线。更改添加网格的顺序与添加其他元素的顺序没有区别
有没有可能使网格线显示在其他所有网格线的后面?根据这一点,您可以使用Axis。将Axis设置为低于(True)
(我目前是第一次安装matplotlib,所以不知道这是否正确-我只是通过谷歌搜索“matplotlib z order grid”找到了它—“z order”通常用于描述这类事情(z是“页面外”的轴)。我也遇到了同样的问题,下面的问题得到了解决:
[line.set_zorder(3) for line in ax.lines]
fig.show() # to update
如果不起作用,将
3
增加到一个更高的值。对我来说,不清楚如何应用andrew cooke的答案,因此这是一个基于以下内容的完整解决方案:
ax.set_axisbelow(True)
ax.yaxis.grid(color='gray', linestyle='dashed')
如果要验证所有图形的设置,可以设置
plt.rc('axes', axisbelow=True)
或
它适用于Matplotlib>=2.0。您可以尝试使用Seaborn的一种样式。例如:
import seaborn as sns
sns.set_style("whitegrid")
不仅网格线会落后,而且外观会更好。
ax.set\u axisdown(True)
仍然有效。对于pdf输出也很好…我希望ax.set\u axisdown(True)
是默认值…是否可以将网格线放在条/线下方,同时将标签保留在顶部?我还单独发布了这个问题,可能是这个,虽然是古老的线索。最好的答案,因为人们可能希望所有数据都是一致的。
import seaborn as sns
sns.set_style("whitegrid")