ホームページ  >  記事  >  バックエンド開発  >  視覚化を向上させるために Matplotlib の線を滑らかにするにはどうすればよいですか?

視覚化を向上させるために Matplotlib の線を滑らかにするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 11:05:03887ブラウズ

How can I smooth lines in Matplotlib for better visualization?

Matplotlib での線の平滑化

Matplotlib では、プロットは通常、データ点を直線で結びます。特定のシナリオではこれが許容される場合もありますが、結果のグラフはギザギザになったり、見た目に魅力がないものになる場合があります。この問題は、線を滑らかにすることで解決でき、より洗練された有益な視覚化が可能になります。

SciPy の内挿の使用

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。