」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何平滑 Matplotlib 中的線條以獲得更好的視覺化效果?

如何平滑 Matplotlib 中的線條以獲得更好的視覺化效果?

發佈於2024-11-10
瀏覽:950

How can I smooth lines in Matplotlib for better visualization?

Matplotlib 中的平滑線

在 Matplotlib 中,繪圖通常以直線連接資料點。雖然這在某些情況下可能是可以接受的,但產生的圖表可能會出現鋸齒狀或視覺上沒有吸引力。這個問題可以透過平滑線條來解決,從而獲得更精緻和資訊豐富的視覺化效果。

使用 SciPy 的插值

要平滑 Matplotlib 中的線條,您可以利用 SciPy 函式庫的功能。透過呼叫 scipy.interpolate.spline,您可以產生一個插值函數,該函數將產生一條穿過原始資料點的平滑曲線。

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)

在 SciPy 版本 0.19.0 及更高版本中,樣條線已被棄用並由 BSpline 類別取代。要獲得類似的結果,您可以使用以下程式碼:

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)

可視化平滑效果

帶有直線的原始圖和平滑後的圖可以進行比較清晰度:

[之前]( https://i.sstatic.net/dSLtt.png)
[之後](https://i.sstatic.net/olGAh.png)

從影像中可以明顯看出,平滑線條可以消除鋸齒,從而產生更具視覺吸引力和資訊量的圖表。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3