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