HOWTO · Matplotlib
Comment montrer Pyplot Grid dans Matplotlib
Cet article explique comment ajouter une grille à un graphique Matplotlib avec `grid()` avant `show()`, puis comment en régler la couleur, le style et l’épaisseur et choisir les lignes verticales, horizontales ou les deux.
Sur cette page
Appelez grid() sur un graphique Matplotlib avant show() pour afficher les lignes de la grille. Vous pouvez régler leur couleur, leur style et leur épaisseur, ou utiliser le paramètre axis pour afficher les lignes verticales, horizontales ou les deux. Les exemples commencent par un graphique en courbes, puis ajoutent et personnalisent sa grille avant de comparer les orientations disponibles.
Tracer un graphique classique dans Matplotlib
Commencez par des valeurs x et y, puis transmettez-les à plot(). Les étiquettes indiquent clairement le rôle de chaque axe ; ce graphique est réutilisé dans les exemples suivants pour comparer les changements apportés à la grille. Chaque valeur x est associée à la valeur y située à la même position : les listes décrivent donc une suite de points. plot() relie ces points dans l’ordre. Le titre et les étiquettes sont facultatifs, mais ils permettent de comprendre ce que représentent les valeurs lorsque vous adaptez les données à votre propre graphique. À ce stade, les axes affichent la courbe et leurs graduations, sans grille dans la zone de tracé. Le titre et les étiquettes visibles dans l’exemple restent en anglais.
from matplotlib import pyplot as plt
x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]
plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.show()
Utiliser grid() sur un graphique dans Matplotlib
Appelez pyplot.grid() après avoir tracé les données et avant show(). La grille s’ajoute aux axes courants ; il n’est pas nécessaire d’afficher d’abord le graphique. Dans cet exemple avec pyplot, plot() trace la courbe sur les axes actifs, puis grid() active les lignes de la grille. En plaçant les deux appels avant show(), Matplotlib affiche la figure une fois qu’elle est prête. Si vous avez déjà un graphique, ajoutez l’appel à grid() après les commandes de tracé et avant celle qui affiche la figure ; inutile de recréer les données ou les étiquettes. La grille suit les positions des graduations des axes, ce qui aide à estimer les valeurs à partir de la courbe sans modifier les données tracées.
from matplotlib import pyplot as plt
x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]
plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid()
plt.show()
Modifier les attributs de la grille dans Matplotlib
Transmettez des options de style à grid(). Par exemple, color="r" choisit le rouge, linestyle="dotted" trace des lignes en pointillés et linewidth=1 définit une ligne fine. La valeur de linewidth peut être un nombre, y compris un nombre à virgule. Les codes couleur courts et les noms de styles ci-dessous sont des choix courants, donnés à titre d’exemple ; la liste n’est pas exhaustive. Vous pouvez combiner ces arguments nommés dans un seul appel pour ajuster la grille sans modifier les données ni le graphique lui-même. Une grille plus claire ou plus fine aide à garder la courbe au premier plan, tandis qu’une couleur contrastée peut rendre les lignes de repère plus faciles à distinguer. Choisissez des valeurs qui restent lisibles par rapport aux axes et aux autres séries de la figure.
from matplotlib import pyplot as plt
x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]
plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid(color="r", linestyle="dotted", linewidth=1)
plt.show()
Parmi les codes couleur courants d’une seule lettre figurent b (bleu), g (vert), r (rouge), c (cyan), m (magenta), y (jaune), k (noir) et w (blanc). Les styles de ligne courants comprennent - ou solid, -- ou dashed, -. ou dashdot, et : ou dotted. linewidth règle l’épaisseur indépendamment de la couleur et du motif, et accepte des valeurs numériques comme 0.5 ou 1.5. L’exemple utilise des lignes rouges en pointillés d’une épaisseur de un. Matplotlib accepte également les noms de couleurs et d’autres formes de styles de ligne ; consultez la documentation de l’API liée pour connaître une option précise ou les valeurs prises en charge.
Tracer des lignes verticales ou horizontales
Le paramètre axis détermine l’orientation de la grille : axis="x" trace des lignes verticales aux positions de l’axe x, axis="y" trace des lignes horizontales aux positions de l’axe y, et axis="both" trace les deux. both est la valeur par défaut. L’exemple place les trois réglages côte à côte pour faciliter la comparaison. Le nom du réglage correspond à l’axe dont les graduations déterminent la grille : les graduations de x se trouvent en haut et en bas du graphique, donc les lignes correspondantes sont verticales ; celles de y se trouvent sur les côtés, donc les lignes sont horizontales. Utilisez axis="x" lorsque des repères verticaux sont utiles, par exemple pour comparer les valeurs à plusieurs positions x. Choisissez axis="y" pour comparer les hauteurs dans le graphique. Conservez la valeur par défaut ou indiquez axis="both" lorsque les lecteurs doivent suivre les deux coordonnées. Chaque sous-graphique possède son propre objet Axes ; la boucle applique donc un réglage à chaque panneau tout en réutilisant les mêmes données.
import matplotlib.pyplot as plt
x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]
_, (horizontal, vertical, both) = plt.subplots(1, 3)
for axis, setting in ((horizontal, "y"), (vertical, "x"), (both, "both")):
axis.plot(x, y)
axis.grid(axis=setting, linestyle="dotted", color="b")
axis.set_title(f'axis="{setting}"')
plt.show()