Pandas-Streudiagramm-Regressionslinie
- Zeichnen Sie eine Regression unter Verwendung eines Streudiagramms mit Pandas
-
Verwenden Sie
regplot()
, um eine Regression zu zeichnen -
Verwenden Sie
Implot()
, um eine Regression zu zeichnen -
Verwenden Sie
sklearn
, um die Regressionslinie mit dem Streudiagramm zusammenzuführen -
Verwenden Sie
Matplotlib
für Pandas Scatter Plot Regression Line -
Verwenden Sie
seaborn
, um die Regressionslinie zu zeichnen - Abschluss
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.
- Importieren Sie die erforderlichen Bibliotheken.
- Erstellen, laden oder importieren Sie die Daten.
- Verwenden Sie die Funktion
regplot()
oderlmplot()
, 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 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 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 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 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
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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn