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의 '스플라인' 기능은 버전 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!