Heim > Artikel > Backend-Entwicklung > Wie kann ich Linien in Matplotlib zur besseren Visualisierung glätten?
In Matplotlib verbinden Diagramme Datenpunkte normalerweise mit geraden Linien. Während dies in bestimmten Szenarien akzeptabel sein kann, kann das resultierende Diagramm gezackt oder optisch unattraktiv erscheinen. Dieses Problem kann durch Glätten der Linien behoben werden, was zu einer ausgefeilteren und informativeren Visualisierung führt.
Um Linien in Matplotlib zu glätten, können Sie die Funktionen der SciPy-Bibliothek nutzen. Durch Aufrufen von scipy.interpolate.spline können Sie eine Interpolationsfunktion generieren, die eine glatte Kurve erzeugt, die durch die ursprünglichen Datenpunkte verläuft.
<code class="python">from scipy.interpolate import spline T = np.array([6, 7, 8, 9, 10, 11, 12]) power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00]) xnew = np.linspace(T.min(), T.max(), 300) # Define the number of points for smoothing power_smooth = spline(T, power, xnew) plt.plot(xnew, power_smooth)</code>
In SciPy-Versionen 0.19.0 und höher ist Spline veraltet und durch die BSpline-Klasse ersetzt. Um ähnliche Ergebnisse zu erzielen, können Sie den folgenden Code verwenden:
<code class="python">from scipy.interpolate import make_interp_spline, BSpline spl = make_interp_spline(T, power, k=3) # k=3 indicates cubic spline interpolation power_smooth = spl(xnew) plt.plot(xnew, power_smooth)</code>
Der ursprüngliche Plot mit geraden Linien und der geglättete Plot können verglichen werden Klarheit:
[Vorher](https://i.sstatic.net/dSLtt.png)
[Nachher](https://i.sstatic.net/olGAh.png)
Wie aus den Bildern hervorgeht, werden durch das Glätten der Linien die Zacken entfernt, was zu einem optisch ansprechenderen und informativeren Diagramm führt.
Das obige ist der detaillierte Inhalt vonWie kann ich Linien in Matplotlib zur besseren Visualisierung glätten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!