Matplotlib では、プロットは通常、データ点を直線で結びます。特定のシナリオではこれが許容される場合もありますが、結果のグラフはギザギザになったり、見た目に魅力がないものになる場合があります。この問題は、線を滑らかにすることで解決でき、より洗練された有益な視覚化が可能になります。
Matplotlib で線を滑らかにするには、SciPy ライブラリの機能を利用できます。 scipy.interpolate.spline を呼び出すことで、元のデータ ポイントを通過する滑らかな曲線を生成する内挿関数を生成できます。
<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>
SciPy バージョン 0.19.0 以降では、スプラインは非推奨になりました。 BSpline クラスに置き換えられました。同様の結果を得るには、次のコードを使用できます。
<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>
直線を含む元のプロットと平滑化されたプロットを明確に比較できます。
[前](https://i.sstatic.net/dSLtt.png)
[後](https://i.sstatic.net/olGAh.png)
明らかなように画像から線を滑らかにすることでギザギザがなくなり、より視覚的に魅力的で有益なグラフが得られます。
以上が視覚化を向上させるために Matplotlib の線を滑らかにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。