Como criar um gráfico de dispersão com uma linha de regressão em python


Freqüentemente, ao realizar uma regressão linear simples, você pode querer criar um gráfico de dispersão para visualizar as diferentes combinações de valores de x e y, bem como a linha de regressão estimada.

Felizmente, existem duas maneiras fáceis de criar esse tipo de gráfico em Python. Este tutorial explica ambos os métodos usando os seguintes dados:

 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])

Método 1: usar Matplotlib

O código a seguir mostra como criar um gráfico de dispersão com uma linha de regressão estimada para esses dados usando 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) 

Gráfico de dispersão com linha de regressão em Python

Sinta-se à vontade para alterar as cores do gráfico como desejar. Por exemplo, veja como alterar os pontos individuais para verde e a linha para vermelho:

 #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 ') 

Gráfico de dispersão com linha de regressão em numpy

Método 2: Use Seaborn

Você também pode usar a função regplot() da biblioteca de visualização Seaborn para criar um gráfico de dispersão com uma linha de regressão:

 import seaborn as sns

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

Gráfico de dispersão com linha de regressão em Seaborn Python

Observe que ci=None diz ao Seaborn para ocultar as faixas do intervalo de confiança no gráfico. No entanto, você pode optar por exibi-los se desejar:

 import seaborn as sns

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

Você pode encontrar a documentação completa da função regplot() aqui .

Recursos adicionais

Como realizar regressão linear simples em Python
Como criar um gráfico residual em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *