x = ['01-02', '02-02', '03-02', '04-02', '05-02']
y = [2, 2, 3, 7, 2]
fig, ax = plt.subplots(1, 1)
ax.bar(range(len(y)), y, width=0.3,align='center',color='skyblue')
plt.xticks(range(len(y)), x, size='small')
plt.savefig('/home/user/graphimages/foo2.png')
plt.close()
我想在条形图后面绘制网格线(x和; y)。
答案 0 :(得分:47)
要添加网格,您只需添加
即可 ax.grid()
如果您希望网格位于条形图后面,请添加
ax.grid(zorder=0)
ax.bar(range(len(y)), y, width=0.3, align='center', color='skyblue', zorder=3)
重要的是条形的zorder
大于网格。试验它似乎zorder=3
是实际产生预期效果的最低值。我不知道为什么zorder=1
是不够的。
修改强>: 我注意到这个问题已经使用不同的方法回答here,尽管它有一些链接腐烂。就我所见,这两种方法产生相同的结果,但是andrew cooke的答案更优雅。
答案 1 :(得分:0)
ax.grid(zorder = 0)糟糕的工作。但是首先放置钢筋,然后放置网格。不是其他方法。
ax = df.plot.bar(x='Index', y='Values', rot=90)
ax.grid(zorder=0)
答案 2 :(得分:0)
我建议另一种解决方案,因为投票最多的答案对我不起作用。您可以使用以下代码设置绘图后面的网格线。
ax.set_axisbelow(True)
ax.grid(color='gray', linestyle='dashed')
我从 this answer 得到了这个代码。
答案 3 :(得分:-1)
plt.grid(True, color = "grey", linewidth = "1.4", linestyle = "-.")
这对我有用,网格线将采用灰色边框颜色,如果您愿意可以将边框设计更改为 linestyle = ".."
像这样
plt.grid(True, color = "grey", linewidth = "1.4", linestyle = "..")
总结整个代码块:
fig, ax = plt.subplots(1, 1)
ax.bar(range(len(y)), y, width=0.3,align='center',color='skyblue')
plt.xticks(range(len(y)), x, size='small')
plt.grid(True, color = "grey", linewidth = "1.4", linestyle = "-.")
plt.savefig('/home/user/graphimages/foo2.png')
plt.close()