Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Linien in Matplotlib zur besseren Visualisierung glätten?

Wie kann ich Linien in Matplotlib zur besseren Visualisierung glätten?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 11:05:03887Durchsuche

How can I smooth lines in Matplotlib for better visualization?

Glätten von Linien in Matplotlib

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.

Verwendung der Interpolation von SciPy

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>

Visualisierung der Glättungseffekte

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn