Matplotlib에서 플롯은 일반적으로 데이터 포인트를 직선으로 연결합니다. 특정 시나리오에서는 이것이 허용될 수 있지만 결과 그래프가 들쭉날쭉하거나 시각적으로 매력적이지 않을 수 있습니다. 이 문제는 선을 매끄럽게 하여 더 세련되고 유용한 시각화를 생성하여 해결할 수 있습니다.
Matplotlib에서 선을 매끄럽게 하려면 SciPy 라이브러리의 기능을 활용할 수 있습니다. scipy.interpolate.spline을 호출하면 원래 데이터 포인트를 통과하는 부드러운 곡선을 생성하는 보간 함수를 생성할 수 있습니다.
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)
SciPy 버전 0.19.0 이상에서는 스플라인이 더 이상 사용되지 않으며 BSpline 클래스로 대체되었습니다. 유사한 결과를 얻으려면 다음 코드를 사용할 수 있습니다.
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)
직선이 있는 원래 플롯과 평활화된 플롯을 명확하게 비교할 수 있습니다.
[이전]( https://i.sstatic.net/dSLtt.png)
[이후](https://i.sstatic.net/olGAh.png)
이미지에서도 알 수 있듯이 라인을 부드럽게 들쭉날쭉한 부분을 제거하여 시각적으로 더 매력적이고 유익한 그래프를 만듭니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3