So zeichnen sie eine glatte kurve in matplotlib
Häufig möchten Sie möglicherweise eine glatte Kurve in Matplotlib für ein Liniendiagramm zeichnen. Glücklicherweise ist dies mit den folgenden SciPy-Funktionen einfach zu bewerkstelligen:
In diesem Tutorial erfahren Sie, wie Sie diese Funktionen in der Praxis nutzen.
Beispiel: Zeichnen einer glatten Kurve in Matplotlib
Der folgende Code zeigt, wie man ein einfaches Liniendiagramm für einen Datensatz erstellt:
import numpy as np import matplotlib.pyplot as plt #create data x = np.array([1, 2, 3, 4, 5, 6, 7, 8]) y = np.array([4, 9, 12, 30, 45, 88, 140, 230]) #create line chart plt. plot (x,y) plt. show ()
Beachten Sie, dass das Liniendiagramm nicht völlig glatt ist, da die zugrunde liegenden Daten keiner glatten Linie folgen. Mit dem folgenden Code können wir eine glatte Kurve für diesen Datensatz erstellen:
from scipy.interpolate import make_interp_spline, BSpline #createdata x = np.array([1, 2, 3, 4, 5, 6, 7, 8]) y = np.array([4, 9, 12, 30, 45, 88, 140, 230]) #define x as 200 equally spaced values between the min and max of original x xnew = np. linspace ( x.min (), x.max (), 200 ) #define spline spl = make_interp_spline (x, y, k= 3 ) y_smooth = spl (xnew) #create smooth line chart plt. plot (xnew, y_smooth) plt. show ()
Beachten Sie, dass die Kurve umso „welliger“ wird, je höher der Grad ist, den Sie für das k- Argument verwenden. Betrachten Sie beispielsweise den folgenden Graphen mit k=7 :
from scipy.interpolate import make_interp_spline, BSpline #createdata x = np.array([1, 2, 3, 4, 5, 6, 7, 8]) y = np.array([4, 9, 12, 30, 45, 88, 140, 230]) #define x as 200 equally spaced values between the min and max of original x xnew = np. linspace ( x.min (), x.max (), 200 ) #define spline with degree k=7 spl = make_interp_spline (x, y, k= 7 ) y_smooth = spl (xnew) #create smooth line chart plt. plot (xnew, y_smooth) plt. show ()
Je nachdem, welche Krümmung die Linie haben soll, können Sie den Wert von k ändern.
Zusätzliche Ressourcen
So zeigen Sie Gitterlinien in Matplotlib-Plots an
So entfernen Sie Häkchen aus Matplotlib-Plots
So erstellen Sie Matplotlib-Plots mit logarithmischen Skalen