How to draw grid lines behind matplotlib bar graph

前端 未结 2 451
伪装坚强ぢ
伪装坚强ぢ 2020-12-13 23:43
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         


        
2条回答
  •  悲哀的现实
    2020-12-14 00:06

    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.

提交回复
热议问题