Come creare un grafico a dispersione con una retta di regressione in python


Spesso, quando si esegue una regressione lineare semplice, è possibile creare un grafico a dispersione per visualizzare le diverse combinazioni dei valori x e y, nonché la linea di regressione stimata.

Fortunatamente, ci sono due semplici modi per creare questo tipo di trama in Python. Questo tutorial spiega entrambi i metodi utilizzando i seguenti dati:

 import numpy as np 

#createdata
x = np.array([1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9])
y = np.array([13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33])

Metodo 1: utilizzare Matplotlib

Il codice seguente mostra come creare un grafico a dispersione con una linea di regressione stimata per questi dati utilizzando Matplotlib:

 import matplotlib.pyplot as plt

#create basic scatterplot
plt.plot(x, y, 'o')

#obtain m (slope) and b(intercept) of linear regression line
m, b = np.polyfit(x, y, 1)

#add linear regression line to scatterplot 
plt.plot(x, m*x+b) 

Grafico a dispersione con retta di regressione in Python

Sentiti libero di cambiare i colori dello schema come desideri. Ad esempio, ecco come cambiare i singoli punti in verde e la linea in rosso:

 #use green as color for individual points
plt.plot(x, y, 'o', color=' green ')

#obtain m (slope) and b(intercept) of linear regression line
m, b = np.polyfit(x, y, 1)

#use red as color for regression line
plt.plot(x, m*x+b, color=' red ') 

Grafico a dispersione con linea di regressione in Numpy

Metodo 2: utilizzare Seaborn

Puoi anche utilizzare la funzione regplot() della libreria di visualizzazione Seaborn per creare un grafico a dispersione con una linea di regressione:

 import seaborn as sns

#create scatterplot with regression line
sns.regplot(x, y, ci=None) 

Grafico a dispersione con retta di regressione in Seaborn Python

Si noti che ci=None dice a Seaborn di nascondere le bande degli intervalli di confidenza sul grafico. Puoi comunque scegliere di visualizzarli se lo desideri:

 import seaborn as sns

#create scatterplot with regression line and confidence interval lines
sns.regplot(x,y) 

Puoi trovare la documentazione completa per la funzione regplot() qui .

Risorse addizionali

Come eseguire una semplice regressione lineare in Python
Come creare un grafico residuo in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *