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\',col
ax.grid(zorder=0) Woud work. But First Place the Bar and then Place the Grid.Not the orther way.
ax = df.plot.bar(x='Index', y='Values', rot=90)
ax.grid(zorder=0)
I took some currency Correlation with Year and Sorted it as my Data Frame df, and below is the result of the code run.
To add a grid you simply need to add
ax.grid()
If you want the grid to be behind the bars then add
ax.grid(zorder=0)
ax.bar(range(len(y)), y, width=0.3, align='center', color='skyblue', zorder=3)
The important part is that the zorder
of the bars is greater than grid. Experimenting it seems zorder=3
is the lowest value that actually gives the desired effect. I have no idea why zorder=1
isn't sufficient.
EDIT: I have noticed this question has already been answered here using a different method although it suffers some link rot. Both methods yield the same result as far as I can see but andrew cooke's answer is more elegant.