Línea de regresión de diagrama de dispersión de pandas
- Dibuja una regresión usando un diagrama de dispersión con pandas
-
Utilice
regplot()
para dibujar una regresión -
Use
Implot()
para dibujar una regresión -
Use
sklearn
para fusionar la línea de regresión con el diagrama de dispersión -
Use
Matplotlib
para la línea de regresión de diagrama de dispersión de Pandas -
Use
nacido del mar
para dibujar la línea de regresión - Conclusión
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.
- Importe las bibliotecas requeridas.
- Cree, cargue o importe los datos.
- Utilice la función
regplot()
olmplot()
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 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:
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 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:
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
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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn