ホームページ  >  記事  >  バックエンド開発  >  PyPlot グラフで滑らかな線を作成するには?

PyPlot グラフで滑らかな線を作成するには?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 17:48:30597ブラウズ

How to Create a Smooth Line in a PyPlot Graph?

PyPlot で滑らかな線をプロットする

問題:

PyPlot を使用してグラフをプロットする場合の場合、データ ポイント間の接続線が硬くて不連続に見える場合があります。これは、特定のシナリオでは望ましくない場合があります。

質問:

PyPlot グラフの接続線を滑らかにする方法は?

解決策:

より滑らかな線を実現するには、scipy のスプライン補間技術を利用できます。方法は次のとおりです:

<code class="python">import matplotlib.pyplot as plt
import numpy as np
import scipy.interpolate

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])

# Create a dense array of points for interpolation
xnew = np.linspace(T.min(), T.max(), 300)

# Interpolate the data using a cubic spline
power_smooth = scipy.interpolate.spline(T, power, xnew)

# Plot the smoothed line
plt.plot(xnew, power_smooth)
plt.show()</code>

注: scipy の 'spline' 関数はバージョン 0.19.0 で非推奨になりました。代わりに「BSpline」クラスを使用してください。更新バージョンは次のとおりです:

<code class="python">from scipy.interpolate import make_interp_spline, BSpline

# Create a dense array of points for interpolation
xnew = np.linspace(T.min(), T.max(), 300)

# Create a B-spline interpolation object
spl = make_interp_spline(T, power, k=3)  # type: BSpline

# Evaluate the interpolation at the new points
power_smooth = spl(xnew)

# Plot the smoothed line
plt.plot(xnew, power_smooth)
plt.show()</code>

「make_interp_spline」の「k」引数は、スプラインの滑らかさを制御します。 「k」の値が大きいほど、線が滑らかになります。

結果のプロットでは、データ ポイント間の滑らかな接続線が表示され、データがより視覚的に魅力的に表現されます。

以上がPyPlot グラフで滑らかな線を作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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