>  기사  >  백엔드 개발  >  PyPlot 그래프에서 부드러운 선을 만드는 방법은 무엇입니까?

PyPlot 그래프에서 부드러운 선을 만드는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-01 17:48:30597검색

How to Create a Smooth Line in a PyPlot Graph?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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