Pandas-Streudiagramm-Regressionslinie

Zeeshan Afridi 21 Juni 2023
  1. Zeichnen Sie eine Regression unter Verwendung eines Streudiagramms mit Pandas
  2. Verwenden Sie regplot(), um eine Regression zu zeichnen
  3. Verwenden Sie Implot(), um eine Regression zu zeichnen
  4. Verwenden Sie sklearn, um die Regressionslinie mit dem Streudiagramm zusammenzuführen
  5. Verwenden Sie Matplotlib für Pandas Scatter Plot Regression Line
  6. Verwenden Sie seaborn, um die Regressionslinie zu zeichnen
  7. Abschluss
Pandas-Streudiagramm-Regressionslinie

Die mit Pandas gelieferten Charting-Tools sind fantastische Tools. Obwohl es viele verschiedene Plotbibliotheken wie Seaborn, Bokeh und Plotly gibt, finden wir, dass Pandas für die meisten meiner Anforderungen sehr zufriedenstellend plottet.

In diesem Artikel wird jedoch untersucht, wie Sie die Python-Bibliothek Seaborn und die Methode matplotlib verwenden, um die Regressionslinie für Pandas-Streudiagramme zu erstellen.

Zeichnen Sie eine Regression unter Verwendung eines Streudiagramms mit Pandas

In Python zeichnen wir eine Regression unter Verwendung des Streudiagramms zusammen mit Pandas. Sie können den folgenden Code verwenden, um ein Scatterplot von Pandas zu erstellen.

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

Wenn ein Parameter vorhanden ist, wird eine Regressionslinie gezeichnet und die Parameter der Anpassung angezeigt.

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

Sie können jedoch den linearen Trend bestimmen, indem Sie einem Streudiagramm zweier numerischer Variablen eine Regressionskurve hinzufügen. Darüber hinaus sehen wir auch eine Illustration zum Hinzufügen einer Regressionskurve zu einem Streudiagramm, um es einzigartiger zu machen.

Es gibt drei Kernschritte, um dies zu tun.

  1. Importieren Sie die erforderlichen Bibliotheken.
  2. Erstellen, laden oder importieren Sie die Daten.
  3. Verwenden Sie die Funktion regplot() oder lmplot(), um den Graphen zu zeichnen.

Beachten Sie, dass Sie die Module dieser Bibliotheken zuerst mit Hilfe der folgenden Möglichkeiten entsprechend Ihrer Python-Version haben müssen.

Code - seegeboren:

# 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

Code - 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

Verwenden Sie regplot(), um eine Regression zu zeichnen

Diese Technik zeichnet Daten und die Anpassung an ein lineares Regressionsmodell. Es gibt jedoch mehrere Möglichkeiten, das Regressionsmodell zu schätzen, die sich alle gegenseitig ausschließen.

Codebeispiel:

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

Ausgang:

Verwenden Sie Regplot, um eine Regressionslinie zu zeichnen

Verwenden Sie Implot(), um eine Regression zu zeichnen

Ein weiterer einfacher Plot ist der lmplot(). Es zeigt eine Linie an, die ein lineares Regressionsmodell und Datenpunkte in einem 2D-Raum bezeichnet.

Sie können jedoch die Bezeichnungen x und y anpassen, um die horizontale bzw. vertikale Achse anzugeben.

Codebeispiel:

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

Ausgang:

Verwenden Sie Implot, um eine Regression zu zeichnen

Verwenden Sie sklearn, um die Regressionslinie mit dem Streudiagramm zusammenzuführen

Codebeispiel:

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

Ausgang:

Verwenden Sie sk-learn, um eine Regression zu zeichnen

Verwenden Sie Matplotlib für Pandas Scatter Plot Regression Line

Der folgende Code zeigt anhand von Matplotlib, wie man für diese Daten ein Scatterplot mit einer ausgewerteten Regressionsgerade erstellt.

Codebeispiel:

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

Ausgang:

Verwenden Sie matplotlab, um eine Regression zu zeichnen

Verwenden Sie seaborn, um die Regressionslinie zu zeichnen

Importieren Sie zunächst die Module wie pandas, random, matplotlib und seaborn, die für den Datensatz benötigt werden.

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

Nachdem wir einen leeren Datensatz erstellt hatten, generierten wir mit der Zufallsfunktion einen Satz zufälliger Daten, die wir in die Variablen X und Y platzierten. Die ersten fünf Zeilen des Datensatzes wurden jedoch mit der Druckfunktion gedruckt.

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

Mit Hilfe von sns.lmplot zeichnen wir zunächst ein Scatterplot ohne Regressionsgerade. Wir haben jedoch die Daten x, das Ziel y, dataframe und fit_reg als False eingegeben, da wir keine Regressionslinie benötigen, und wir haben die Zahlen für den Plot in scatter_kws eingegeben.

Die Bezeichnungen Titel, x und y-Achse wurden ebenfalls festgelegt.

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

Wir müssen den Parameter fir_eg auf True setzen, um ein Streudiagramm mit einer Regressionslinie zu erzeugen. Dadurch wird jedoch eine Regressionslinie neben dem Streudiagramm gezeichnet.

Die Bezeichnungen Titel, x und y-Achse wurden ebenfalls festgelegt.

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

Ausgang:

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

Verwenden Sie Seaborn, um die Regressionslinie zu wagen

Abschluss

So wird die Pandas-Scatterplot-Regressionslinie mit Matplotlib oder Seaborn erstellt. Der lineare Trend lässt sich leicht erkennen, indem man einem Streudiagramm zwischen zwei numerischen Variablen eine Regressionslinie hinzufügt.

In diesem Artikel haben wir zwei verschiedene Methoden von Python Seaborn zum Erstellen von Streudiagrammen mit Regressionslinien kennengelernt. Wir haben auch eine Illustration gelernt, wie man einem Streudiagramm eine Regressionslinie hinzufügt.

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

Verwandter Artikel - Pandas Plot