Sommario:
Video: Matplotlib Plot Tutorial: Histograms, Scatter Plots & Legend 2024
I grafici a dispersione sono particolarmente importanti per la scienza dei dati perché possono mostrare schemi di dati che non sono ovvi se visualizzati in altri modi. Puoi vedere i raggruppamenti di dati con relativa facilità e aiutare lo spettatore a capire quando i dati appartengono a un particolare gruppo. Puoi anche mostrare sovrapposizioni tra gruppi e persino dimostrare quando determinati dati non rientrano nell'intervallo previsto. Mostrare questi diversi tipi di relazioni nei dati è una tecnica avanzata che è necessario conoscere per sfruttare al meglio MatPlotLib.
Raffigurazione dei gruppi
Il colore è il terzo asse quando si lavora con uno scatterplot. L'uso del colore ti consente di evidenziare i gruppi in modo che gli altri possano vederli con maggiore facilità. L'esempio seguente mostra come utilizzare il colore per mostrare i gruppi all'interno di un grafico a dispersione:
importa numpy come np
importa matplotlib. pyplot come plt
x1 = 5 * np. casuale. rand (50)
x2 = 5 * np. casuale. rand (50) + 25
x3 = 30 * np. casuale. rand (25)
x = np. concatenate ((x1, x2, x3))
y1 = 5 * np. casuale. rand (50)
y2 = 5 * np. casuale. rand (50) + 25
y3 = 30 * np. casuale. rand (25)
y = np. concatenate ((y1, y2, y3))
color_array = ['b'] * 50 + ['g'] * 50 + ['r'] * 25
plt. scatter (x, y, s = [50], marker = "D", c = color_array)
plt. show ()
Questo esempio utilizza un array per i colori. Tuttavia, il primo gruppo è blu, seguito dal verde per il secondo gruppo. Tutti i valori anomali appaiono in rosso.
Gli array di colori possono far risaltare meglio i gruppi scatterplot.Visualizzazione delle correlazioni
In alcuni casi, è necessario conoscere l'orientamento generale dei dati durante la visualizzazione di un grafico a dispersione. Anche se si crea una rappresentazione chiara dei gruppi, la direzione effettiva che i dati assumono nel loro complesso potrebbe non essere chiara. In questo caso, aggiungi una linea di tendenza all'output. Ecco un esempio di aggiunta di una linea di tendenza a un grafico a dispersione che include gruppi.
importa numpy come np
importa matplotlib. pyplot come plt
importa matplotlib. pylab as plb
x1 = 15 * np. casuale. rand (50)
x2 = 15 * np. casuale. rand (50) + 15
x3 = 30 * np. casuale. rand (30)
x = np. concatenate ((x1, x2, x3))
y1 = 15 * np. casuale. rand (50)
y2 = 15 * np. casuale. rand (50) + 15
y3 = 30 * np. casuale. rand (30)
y = np. concatenate ((y1, y2, y3))
color_array = ['b'] * 50 + ['g'] * 50 + ['r'] * 25
plt. scatter (x, y, s = [90], marker = "*", c = color_array)
z = np. polyfit (x, y, 1)
p = np. poly1d (z)
plb. trama (x, p (x), 'm -')
plt.show ()
L'aggiunta di una linea di tendenza significa chiamare la funzione NumPy
polyfit ()
con i dati, che restituisce un vettore di coefficienti,
p
, che minimizza l'errore dei minimi quadrati. La regressione quadrata minima è un metodo per trovare una linea che riepiloga la relazione tra due variabili,
x
e
y
in questo caso, almeno all'interno del dominio della variabile esplicativa
x
. Il terzo parametro
polyfit ()
esprime il grado di adattamento polinomiale.
L'output vettoriale di
polyfit ()
viene utilizzato come input per
poly1d ()
, che calcola i punti di dati dell'asse y effettivi. La chiamata a
plot ()
crea la linea di tendenza sullo scatterplot.