"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 더 나은 시각화를 위해 Matplotlib에서 선을 부드럽게 하려면 어떻게 해야 합니까?

더 나은 시각화를 위해 Matplotlib에서 선을 부드럽게 하려면 어떻게 해야 합니까?

2024년 11월 10일에 게시됨
검색:791

How can I smooth lines in Matplotlib for better visualization?

Matplotlib의 평활화 선

Matplotlib에서 플롯은 일반적으로 데이터 포인트를 직선으로 연결합니다. 특정 시나리오에서는 이것이 허용될 수 있지만 결과 그래프가 들쭉날쭉하거나 시각적으로 매력적이지 않을 수 있습니다. 이 문제는 선을 매끄럽게 하여 더 세련되고 유용한 시각화를 생성하여 해결할 수 있습니다.

SciPy의 보간법 사용

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