Línea de regresión de diagrama de dispersión de pandas

Zeeshan Afridi 21 junio 2023
  1. Dibuja una regresión usando un diagrama de dispersión con pandas
  2. Utilice regplot() para dibujar una regresión
  3. Use Implot() para dibujar una regresión
  4. Use sklearn para fusionar la línea de regresión con el diagrama de dispersión
  5. Use Matplotlib para la línea de regresión de diagrama de dispersión de Pandas
  6. Use nacido del mar para dibujar la línea de regresión
  7. Conclusión
Línea de regresión de diagrama de dispersión de pandas

Las herramientas de gráficos que vienen con Pandas son herramientas fantásticas para usar. Aunque hay muchas bibliotecas de trazado diferentes, como Seaborn, Bokeh y Plotly, encontramos que el trazado de Pandas es muy satisfactorio para la mayoría de mis requisitos.

Sin embargo, este artículo explorará cómo usar la biblioteca Seaborn de Python y el método matplotlib para crear la línea de regresión de diagramas de dispersión de Pandas.

Dibuja una regresión usando un diagrama de dispersión con pandas

En Python, dibujamos una regresión usando el diagrama de dispersión junto con Pandas. Puede utilizar el siguiente código para crear un diagrama de dispersión de Pandas.

df.plot.scatter(x="one", y="two", title="Scatterplot")

Si hay un parámetro, traza una línea de regresión y muestra los parámetros del ajuste.

df.plot.scatter(x="one", y="two", title="Scatterplot", Regression_line)

Sin embargo, puede determinar la tendencia lineal agregando una curva de regresión a un diagrama de dispersión de dos variables numéricas. Además, también veremos una ilustración de cómo agregar una curva de regresión a un diagrama de dispersión para hacerlo más único.

Hay tres pasos básicos para hacerlo.

  1. Importe las bibliotecas requeridas.
  2. Cree, cargue o importe los datos.
  3. Utilice la función regplot() o lmplot() para trazar el gráfico.

Tenga en cuenta que primero debe tener los módulos de estas bibliotecas con la ayuda de las siguientes formas según su versión de Python.

Código - nacido del mar:

# in a virtual environment or using Python2
pip install seaborn

# for python3 (could also be pip3.10 depending on your version)
pip3 install seaborn

# if you get a permissions error
sudo pip3 install seaborn

# if you don't have pip in your PATH environment variable
python -m pip install seaborn

# for python3 (could also be pip3.10 depending on your version)
python3 -m pip install seaborn

# alternative for Ubuntu/Debian
sudo apt-get install python3-seaborn

# alternative for CentOS
sudo yum install python3-seaborn

# alternative for Fedora
sudo yum install python3-seaborn

# for Anaconda
conda install -c conda-forge seaborn

Código - matplotib:

# in a virtual environment or using Python2
pip install matplotlib

# for python3 (could also be pip3.10 depending on your version)
pip3 install matplotlib

# if you get a permissions error
sudo pip3 install matplotlib

# if you don't have pip in your PATH environment variable
python -m pip install matplotlib

# for python3 (could also be pip3.10 depending on your version)
python3 -m pip install matplotlib

# alternative for Ubuntu/Debian
sudo apt-get install python3-matplotlib

# alternative for CentOS
sudo yum install python3-matplotlib

# alternative for Fedora
sudo yum install python3-matplotlib

# for Anaconda
conda install -c conda-forge matplotlib

Utilice regplot() para dibujar una regresión

Esta técnica traza los datos y el ajuste a un modelo de regresión lineal. Sin embargo, existen varias opciones para estimar el modelo de regresión, todas las cuales son mutuamente excluyentes.

Ejemplo de código:

# importing libraries
import seaborn as sb

# load data
df = sb.load_dataset("iris")

# use regplot
sb.regplot(x="sepal_length", y="petal_length", ci=None, data=df)

Producción:

Use regplot para dibujar la línea de regresión

Use Implot() para dibujar una regresión

Otro gráfico sencillo es lmplot(). Muestra una línea que indica un modelo de regresión lineal y puntos de datos en un espacio 2D.

Sin embargo, puede ajustar las etiquetas x e y para indicar los ejes horizontal y vertical, respectivamente.

Ejemplo de código:

# importing libraries
import seaborn as sb

# load data
df = sb.load_dataset("iris")

# use lmplot
sb.lmplot(x="sepal_length", y="petal_length", ci=None, data=df)

Producción:

Utilice Implot para dibujar una regresión

Use sklearn para fusionar la línea de regresión con el diagrama de dispersión

Ejemplo de código:

from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
from sklearn.linear_model import LinearRegression

marks_df = pd.read_csv("student_marks.csv")
marks_df.head()
X = marks_df.iloc[:, :-1].values
y = marks_df.iloc[:, 1].values


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

regressor = LinearRegression()
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
plt.scatter(X_train, y_train, color="g")

plt.plot(X_test, y_pred, color="k")
plt.show()

Producción:

Use sk-learn para dibujar una regresión

Use Matplotlib para la línea de regresión de diagrama de dispersión de Pandas

Usando Matplotlib, el siguiente código ilustra cómo producir un diagrama de dispersión con una línea de regresión evaluada para estos datos.

Ejemplo de código:

# import libraries
import numpy as np
import matplotlib.pyplot as plt

# creating data
a = np.array([1, 3, 1, 5, 0, 9, 5, 7, 6, 7, 3, 7])
b = np.array([13, 18, 17, 12, 23, 14, 27, 25, 24, 23, 36, 31])

# create a simple scatterplot
plt.plot(a, b, "o")

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

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

Producción:

Usa matplotlab para dibujar una regresión

Use nacido del mar para dibujar la línea de regresión

Primero, importe los módulos como pandas, random, matplotlib y seaborn, que serán necesarios para el conjunto de datos.

import pandas as pd
import random
import matplotlib.pyplot as plt
import seaborn as sns

Después de crear un conjunto de datos vacío, generamos un conjunto de datos aleatorios mediante la función aleatoria, que colocamos en las variables X e Y. Sin embargo, las primeras cinco filas del conjunto de datos se imprimieron mediante la función de impresión.

df = pd.DataFrame()
df["x"] = random.sample(range(1, 500), 70)
df["y"] = random.sample(range(1, 500), 70)
print(df.head())

Con la ayuda de sns.lmplot, primero trazamos un diagrama de dispersión sin línea de regresión. Sin embargo, ingresamos los datos x, el objetivo y, dataframe y fit_reg como False ya que no requerimos una línea de regresión, e ingresamos los números para la gráfica en scatter_kws.

También se han especificado las etiquetas título, x y eje y.

sns.lmplot("x", "y", data=df, fit_reg=False, scatter_kws={"marker": "D", "s": 20})
plt.title("Scatter Plot of Data without Regression Line")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()

Necesitamos establecer el parámetro fir_eg en True para generar un diagrama de dispersión con una línea de regresión. Sin embargo, esto dibujará una línea de regresión junto con el diagrama de dispersión.

También se han especificado las etiquetas título, x y eje y.

sns.lmplot("x", "y", data=df, fit_reg=True, scatter_kws={"marker": "D", "s": 20})

plt.title("Scatter Plot of Data with Regression Line")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()

Producción :

     x    y
0   79  386
1  412   42
2  239  139
3  129  279
4  404  239

Usar seaborn para atreverse con la línea de regresión

Conclusión

Así es como se crea la línea de regresión del diagrama de dispersión de pandas usando Matplotlib o Seaborn. La tendencia lineal se puede ver fácilmente agregando una línea de regresión a un diagrama de dispersión entre dos variables numéricas.

En este artículo, aprendimos dos métodos diferentes de Python Seaborn para crear diagramas de dispersión usando líneas de regresión. También aprendimos una ilustración de cómo agregar una línea de regresión a un diagrama de dispersión.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Pandas Plot