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