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:
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:
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:
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 is a backend software engineer at Matrice.ai.
LinkedIn