HOWTO · Matplotlib

Come mostrare la griglia di Pyplot in Matplotlib

Aggiungi una griglia a un grafico Matplotlib con grid(), personalizzane il colore e lo stile delle linee e scegli linee di griglia verticali o orizzontali.

In questa pagina

Chiama grid() su un grafico Matplotlib prima di show() per visualizzare le linee della griglia. Puoi impostarne il colore, lo stile e lo spessore, oppure usare il parametro axis per mostrare linee verticali, orizzontali o entrambe. Gli esempi partono da un grafico a linee, poi ne aggiungono e personalizzano la griglia prima di confrontare le direzioni disponibili.

Disegnare un grafico semplice in Matplotlib

Inizia con i valori x e y, quindi passali a plot(). Le etichette rendono chiari gli assi; questo è lo stesso grafico usato negli esempi successivi, così puoi confrontare le modifiche alla griglia. A ogni valore x corrisponde il valore y nella stessa posizione: le liste descrivono quindi una sequenza di punti. plot() collega i punti nell’ordine in cui compaiono. Il titolo e le etichette sono facoltativi, ma aiutano a capire cosa rappresentano i valori quando adatti i dati al tuo grafico. In questa fase gli assi mostrano la linea e le tacche, senza griglia nell’area del grafico. Il titolo e le etichette visibili negli esempi restano in inglese, perché i blocchi di codice e i relativi output non vengono modificati.

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()

Normal Plot Without Grid in Matplotlib

Usare grid() su un grafico in Matplotlib

Chiama pyplot.grid() dopo aver tracciato i dati e prima di show(). In questo modo aggiungi la griglia agli assi correnti, senza dover prima visualizzare il grafico. In questo esempio con pyplot, plot() traccia la linea sugli assi attivi e grid() attiva le linee della griglia. Lasciando entrambe le chiamate prima di show(), Matplotlib può visualizzare la figura completa in un’unica volta. Se hai già creato un grafico, aggiungi la chiamata alla griglia dopo i comandi di tracciamento e prima di quello di visualizzazione: non devi ricreare i dati né le etichette. La griglia segue la posizione delle tacche degli assi e facilita la stima dei valori a partire dalla linea, senza modificare i dati tracciati.

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()

Simple Grid in Matplotlib

Modificare gli attributi della griglia in Matplotlib

Passa le opzioni di stile a grid(). Per esempio, color="r" seleziona il rosso, linestyle="dotted" disegna linee puntinate e linewidth=1 imposta uno spessore sottile. Il valore di linewidth può essere un numero, anche decimale. I codici colore brevi e i nomi degli stili di linea elencati qui sono scelte comuni, non un elenco completo. Puoi combinare questi argomenti con nome in un’unica chiamata per regolare la griglia senza modificare i dati della linea o il grafico. Una griglia più chiara o sottile può mantenere in primo piano la linea dei dati, mentre un colore contrastante rende più distinguibili le linee di riferimento. Scegli valori ben leggibili rispetto agli assi e alle altre serie presenti nella figura.

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()

Grid Attributes in Matplotlib

Tra i codici colore di una sola lettera più comuni ci sono b (blu), g (verde), r (rosso), c (ciano), m (magenta), y (giallo), k (nero) e w (bianco). Gli stili di linea comuni includono - o solid, -- o dashed, -. o dashdot e : o dotted. linewidth controlla lo spessore indipendentemente dal colore e dal motivo e accetta valori numerici come 0.5 o 1.5. L’esempio usa linee rosse puntinate con spessore pari a uno. Matplotlib accetta anche nomi di colori e altre forme di stile: consulta il riferimento API collegato per un’opzione specifica o maggiori dettagli sui valori supportati.

Disegnare linee verticali oppure orizzontali

Il parametro axis seleziona la direzione della griglia: axis="x" disegna linee verticali in corrispondenza delle posizioni dell’asse x, axis="y" disegna linee orizzontali in corrispondenza delle posizioni dell’asse y e axis="both" le disegna entrambe. Il valore predefinito è both. L’esempio affianca le tre impostazioni per facilitarne il confronto. Il nome indica l’asse le cui tacche determinano la griglia: le tacche x si trovano in basso e in alto nel grafico, quindi le relative linee sono verticali; le tacche y si trovano sui lati, quindi le linee sono orizzontali. Usa axis="x" quando sono utili riferimenti verticali, per esempio per confrontare i valori in diverse posizioni x. Usa axis="y" per confrontare le altezze nel grafico. Mantieni il valore predefinito o specifica axis="both" quando è utile seguire entrambe le coordinate. Ogni sotto-grafico ha il proprio oggetto Axes, quindi il ciclo applica un’impostazione a ciascun pannello riutilizzando gli stessi dati.

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()

X-axis Y-axis Grid in Matplotlib