Grafici Con Matplotlib
Grafici Con Matplotlib
La libreria matplotlib
La libreria matplotlib consente di disegnare grafici 2D in vari
modi. In particolare useremo matplotlib.pyplot che consente
di utilizzare grafici interattivi.
È necessario all’inizio del programma importare la libreria
attribuendole un nome corto per comodità
import matplotlib.pyplot as plt
possiamo fare la stessa cosa con la libreria math
import math as m
Esempio:
import math as m
a=m.pi #assegna il valore di pi greco
I metodi di Matplotlib
Per richiamare un comando si usa plt seguito dai possibili metodi
(plt.«nomeMetodo») di cui vedremo i primi esempi. Il comando
sarà seguito da eventuali parametri racchiusi da parentesi tonde.
Metodi principali della libreria:
Metodo Plot: date due liste x e y
plot(x, y) fa il grafico di x e y usando lo stile e il colore predefiniti
plot(x, y, 'bo') fa il grafico di x e y usando cerchi blue (b blue, o
cerchi)
plot(y) fa il grafico di y usando come x il vettore 0..N-1
Esempio
Esempio
Dopo le liste che contengono i dati è possibile aggiungere
un terzo argomento che indica il colore della curva e il tipo
di tratto. Per esempio ‘g- -’ crea un grafico verde con linea
tratteggiata
Esempi di Colori
Parametri del comando PLOT
plot(x, y, 'go--', linewidth=2, markersize=12)
plot(x, y, color='green', marker='o', linestyle='dashed', ...
linewidth=2, markersize=12)
Questi due comandi danno luogo a grafici con le stesse
caratteristiche facili da intuire leggendo la seconda stringa,
meno sintetica.
Esempi di marker
Esempi di linestyle "." punto medio
"-" linea continua "," punto piccolo
"--" linea tratteggiata "o" punto grande
"-." linea tratto-punto "v" triangolo rovesciato
":" linea punteggiata "^" triangolo
"" nessuna linea
Legenda, etichette, titoli, griglia
plt.xlim(-4,10) per settare gli estremi degli assi in modo non automatico
plt.ylim(-20,40)
https://matplotlib.org/stable/api/matplotlib_configuration_api.
html
Esempio: inserire due grafici
Come inserire assi cartesiani
Le linee che contornano le figure sono le spines. Noi possiamo “spostare” due di
queste e oscurare le altre
# creare una figura (fig) e un set di assi (ax) su cui possiamo disegnare
fig, ax = plt.subplots()
#posiziono la spine di sinistra sullo 0 e la spine in basso sullo 0
ax.spines['left'].set_position('zero')
ax.spines['bottom'].set_position('zero')
#non visualizzo la spine di destra e quella in alto
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# Aggiunge la griglia (opzionale)
ax.grid(True, linestyle='--', alpha=1.0)
# assi monometrici e con dimensioni figura non adattate
ax.set_aspect('equal', adjustable=’datalim’)
Come inserire assi cartesiani
Oppure lasciamo le spines ai bordi e aggiungiamo assi centrati in (0;0)
# creare una figura (fig) e un set di assi (ax) su cui possiamo disegnare
fig, ax = plt.subplots()
# Disegnare gli assi cartesiani
ax.axhline(0, color='black', linewidth=1) # Asse X
ax.axvline(0, color='black', linewidth=1) # Asse Y
# Impostare i limiti dell'asse
ax.set_xlim(-10, 10)
ax.set_ylim(-10, 10)
# Aggiunge la griglia (opzionale)
ax.grid(True, linestyle='--', alpha=0.6)
#il parametro alpha fissa la trasparenza della griglia. Numero da 0 a 1
# assi monometrici
ax.set_aspect('equal')
Esercizi
1) Genera un grafico a dispersione con i seguenti dati:
x = [1, 2, 3, 4, 5, 6, 7, 8] y = [3, 7, 1, 5, 9, 2, 6, 8]
* a partire dai dati inseriti, calcola il tempo di volo Tvolo , l’altezza massima
hmax raggiunta e la gittata G;