Mostra Pyplot Grid in Matplotlib
- Disegna un grafico normale in Matplotlib
-
Usa
grid()
su un grafico in Matplotlib - Modificare gli attributi della griglia in Matplotlib
- Disegna linee verticali o orizzontali
Questo tutorial spiega come disegnare una griglia sopra un grafico in Python Matplotlib. Useremo la funzione grid()
per ottenere questo risultato. Dimostra anche come usare gli argomenti grid()
funzione per personalizzare il colore e la forma della griglia e persino disegnare solo le linee verticali o orizzontali.
Disegna un grafico normale in Matplotlib
Iniziamo creando due liste per rappresentare i valori x e y e usali per disegnare un grafico. Chiama la funzione plot()
e passa le liste x e y come argomenti, quindi chiama la funzione show()
.
Usa le funzioni title()
, xlabel
e ylabel()
per aggiungere titolo ed etichette alla trama per renderla comprensibile.
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("MyPlot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.show()
Produzione:
Ma una trama normale sembra noiosa e manca qualcosa. Ora dobbiamo aggiungere una griglia al nostro grafico.
Usa grid()
su un grafico in Matplotlib
Useremo la funzione Matplotlib grid()
per disegnare una griglia sopra il grafico.
Dobbiamo chiamare la funzione grid()
prima di show()
, e questo disegnerà una griglia sul grafico precedente.
Vedi il codice qui sotto.
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("MyPlot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid()
plt.show()
Produzione:
Modificare gli attributi della griglia in Matplotlib
La funzione grid()
(https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.grid.html) accetta argomenti per personalizzare il colore e lo stile della griglia. Possiamo chiamare grid()
(https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.grid.html) in questo modo plt.grid(color='r', linestyle='dotted', linewidth=1)
per ottenere una griglia con linee rosse, punteggiate e sottili.
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("MyPlot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid(color="r", linestyle="dotted", linewidth=1)
plt.show()
Produzione:
La larghezza di riga è del tipo di dati float e qui ci sono tutti i codici colore e gli stili di linea disponibili.
Codici colore validi:
codice | colore |
---|---|
b |
blu |
g |
verde |
r |
rosso |
c |
ciano |
m |
magenta |
y |
giallo |
k |
nero |
w |
bianca |
Stili di linea validi:
-
--
-.
:
None
- ``
solid
dashed
dashdot
dotted
Disegna linee verticali o orizzontali
L’impostazione predefinita della funzione grid()
è di disegnare sia l’asse orizzontale che quello verticale, ma potresti voler personalizzare anche questo. Puoi usare l’argomento dell’asse per farlo. Chiama la grid()
con axis='x'
per disegnare solo le linee verticali o axis='y'
per disegnare solo le linee orizzontali o axis='both'
per disegnarle entrambe, che è il comportamento predefinito.
Vedi il codice qui sotto e il suo output.
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]
_, (a, b, c) = plt.subplots(1, 3)
a.grid(axis="y", linestyle="dotted", color="b")
a.plot(x, y)
a.set_title("axis='y'")
b.grid(axis="x", linestyle="dotted", color="b")
b.plot(x, y)
b.set_title("axis='x'")
c.grid(axis="both", linestyle="dotted", color="b")
c.plot(x, y)
c.set_title("axis='both'")
plt.show()
Produzione: