Dans Matplotlib, je fais des lignes de grille en pointillés comme suit:
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
cependant, je ne peux pas savoir comment (ou même si cela est possible) pour dessiner les lignes de la grille derrière d'autres éléments du graphique, tels que les barres. Changer l'ordre d'ajout de la grille par rapport à l'ajout d'autres éléments ne fait aucune différence.
Est-il possible de faire en sorte que les lignes de la grille apparaissent derrière tout le reste?
Selon cela - http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html - vous pouvez utiliser Axis.set_axisbelow(True)
(J'installe actuellement matplotlib pour la première fois, donc je n'ai aucune idée si c'est correct - je l'ai trouvé en recherchant "matplotlib z order grid" - "z order" est généralement utilisé pour décrire ce genre de chose (z étant l'axe) "hors de la page"))
Pour moi, il n'était pas clair comment appliquer la réponse d'Andrew Cooke, c'est donc une solution complète basée sur cela:
ax.set_axisbelow(True)
ax.yaxis.grid(color='gray', linestyle='dashed')
Si vous souhaitez valider le paramètre pour tous chiffres, vous pouvez définir
plt.rc('axes', axisbelow=True)
ou
plt.rcParams['axes.axisbelow'] = True
Cela fonctionne pour Matplotlib> = 2.0.
J'ai eu le même problème et les éléments suivants ont fonctionné:
[line.set_zorder(3) for line in ax.lines]
fig.show() # to update
Augmenter 3
à une valeur plus élevée si cela ne fonctionne pas.