Come aggiungere una linea di tendenza in matplotlib (con esempio)
È possibile utilizzare la seguente sintassi di base per aggiungere una linea di tendenza a un grafico in Matplotlib:
#create scatterplot plt. scatter (x,y) #calculate equation for trendline z = np. polyfit (x, y, 1) p = np. poly1d (z) #add trendline to plot plt. plot (x, p(x))
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: crea una linea di tendenza lineare in Matplotlib
Il codice seguente mostra come creare una linea di tendenza di base per un grafico a dispersione in Matplotlib:
import numpy as np import matplotlib. pyplot as plt #define data x = np. array ([8, 13, 14, 15, 15, 20, 25, 30, 38, 40]) y = np. array ([5, 4, 18, 14, 20, 24, 28, 33, 30, 37]) #create scatterplot plt. scatter (x,y) #calculate equation for trendline z = np. polyfit (x, y, 1 ) p = np. poly1d (z) #add trendline to plot plt. plot (x, p(x))
I punti blu rappresentano i punti dati e la linea blu retta rappresenta la linea di tendenza lineare.
Tieni presente che puoi anche utilizzare gli argomenti color , linewidth e linestyle per modificare l’aspetto della linea di tendenza:
#add custom trendline to plot
plt. plot (x, p(x), color=" purple ", linewidth= 3 , linestyle=" -- ")
Esempio 2: creare una linea di tendenza polinomiale in Matplotlib
Per creare una linea di tendenza polinomiale, è sufficiente modificare il valore nella funzione np.polyfit() .
Ad esempio, potremmo utilizzare un valore pari a 2 per creare una linea di tendenza quadratica:
import numpy as np import matplotlib. pyplot as plt #define data x = np. array ([8, 13, 14, 15, 15, 20, 25, 30, 38, 40]) y = np. array ([5, 4, 18, 14, 20, 24, 28, 33, 30, 37]) #create scatterplot plt. scatter (x,y) #calculate equation for quadratic trendline z = np. polyfit (x,y, 2 ) p = np. poly1d (z) #add trendline to plot plt. plot (x, p(x))
Tieni presente che la linea di tendenza ora è curva anziché diritta.
Questa linea di tendenza polinomiale è particolarmente utile quando i dati hanno uno schema non lineare e una linea retta non riesce a catturare adeguatamente la tendenza dei dati.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre funzioni comuni in Matplotlib:
Come nascondere gli assi in Matplotlib
Come ruotare le etichette dei segni di spunta in Matplotlib
Come modificare il numero di tick in Matplotlib