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

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

Susan Sarandon
Susan Sarandon원래의
2024-11-02 11:05:03887검색

How can I smooth lines in Matplotlib for better visualization?

Matplotlib의 평활선

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

SciPy 보간 사용

Matplotlib에서 선을 매끄럽게 하려면 SciPy 라이브러리의 기능을 활용할 수 있습니다. scipy.interpolate.spline을 호출하면 원래 데이터 포인트를 통과하는 부드러운 곡선을 생성하는 보간 함수를 생성할 수 있습니다.

<code class="python">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)</code>

SciPy 버전 0.19.0 이상에서는 스플라인이 더 이상 사용되지 않습니다. BSpline 클래스로 대체되었습니다. 유사한 결과를 얻으려면 다음 코드를 사용할 수 있습니다.

<code class="python">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)</code>

평활화 효과 시각화

직선이 있는 원래 플롯과 평활화된 플롯을 명확하게 비교할 수 있습니다.

[이전](https://i.sstatic.net/dSLtt.png)
[이후](https://i.sstatic.net/olGAh.png)

아시다시피 이미지에서 선을 부드럽게 하면 들쭉날쭉한 부분이 제거되어 시각적으로 더욱 매력적이고 유익한 그래프가 생성됩니다.

위 내용은 더 나은 시각화를 위해 Matplotlib에서 선을 부드럽게 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.