NumPy-Linear-Anpassung in Matplotlib-Python grafisch darstellen

Suraj Joshi 22 Januar 2022
NumPy-Linear-Anpassung in Matplotlib-Python grafisch darstellen

Dieses Tutorial erklärt, wie man eine Kurve mit der Methode numpy.polyfit() an die gegebenen Daten anpasst und die Kurve mit Hilfe des Matplotlib-Pakets anzeigt.

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 1.5, 4, 2.5, 6, 4, 3, 5.5, 5, 2]
y = [3, 4, 8, 4.5, 10, 5, 15, 9, 5, 16, 13, 3]

plt.scatter(x, y)
plt.title("Scatter Plot of the data")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

Ausgabe:

Matplotlib Scatter Plot der Daten für die Kurvenanpassung

Es zeigt das Streudiagramm der Daten an, an denen die Kurvenanpassung vorgenommen werden muss. Wir können sehen, dass es keine perfekte lineare Beziehung zwischen den X und Y Werten gibt, aber wir werden versuchen, die beste lineare Annäherung aus den Daten zu machen.

Zeichnen Sie die lineare Anpassung an die Daten auf

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 1.5, 4, 2.5, 6, 4, 3, 5.5, 5, 2]
y = [3, 4, 8, 4.5, 10, 5, 15, 9, 5, 16, 13, 3]

plt.scatter(x, y, color="red")
plt.title("Scatter Plot of the data")
plt.xlabel("X")
plt.ylabel("Y")

linear_model = np.polyfit(x, y, 1)
linear_model_fn = np.poly1d(linear_model)
x_s = np.arange(0, 7)
plt.plot(x_s, linear_model_fn(x_s), color="green")

plt.show()

Ausgabe:

Zeichnen Sie eine lineare Anpassung an die Daten

Hier versuchen wir, die gegebenen Daten durch die Gleichung der Form y=m*x+c zu approximieren. Die polyfit() Methode wird die m und c Parameter aus den Daten schätzen, und die poly1d() Methode wird aus diesen Koeffizienten eine Gleichung erstellen. Dann wird die Gleichung in der Abbildung mit der plot() Methode, dargestellt durch die gerade Linie der grünen Farbe, aufgetragen.

In dem Beispiel passen wir eine lineare Gleichung an die Daten an, da wir 1 als drittes Argument in der polyfit() Methode haben. Wir können auch mit anderen Werten des Parameters experimentieren, um Kurven höherer Ordnung an die Daten anzupassen.

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 1.5, 4, 2.5, 6, 4, 3, 5.5, 5, 2]
y = [3, 4, 8, 4.5, 10, 5, 15, 9, 5, 16, 13, 3]

plt.scatter(x, y, color="red")
plt.title("Scatter Plot of the data")
plt.xlabel("X")
plt.ylabel("Y")

linear_model = np.polyfit(x, y, 2)
linear_model_fn = np.poly1d(linear_model)
x_s = np.arange(0, 7)
plt.plot(x_s, linear_model_fn(x_s), color="green")

plt.show()

Ausgabe:

Zeichnen Sie eine quadratische Anpassung an die Daten

Auf diese Weise können wir ein quadratisches Diagramm zu den Daten erzeugen, indem wir einfach den dritten Parameter der polyfit()-Methode auf 2 setzen, der die Kurve zweiter Ordnung an die Daten anpasst.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn