Matplotlib에서 부드러운 곡선을 그리는 방법


선 그래프를 위해 Matplotlib에서 부드러운 곡선을 그리는 경우가 종종 있습니다. 다행히도 다음 SciPy 함수를 사용하면 쉽게 수행할 수 있습니다.

이 튜토리얼에서는 이러한 기능을 실제로 사용하는 방법을 설명합니다.

예: Matplotlib에서 부드러운 곡선 그리기

다음 코드는 데이터 집합에 대한 간단한 선 차트를 만드는 방법을 보여줍니다.

 import numpy as np
import matplotlib.pyplot as plt

#create data
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([4, 9, 12, 30, 45, 88, 140, 230])

#create line chart
plt. plot (x,y)
plt. show ()

기본 데이터가 부드러운 선을 따르지 않기 때문에 꺾은선형 차트가 완전히 매끄럽지 않다는 점에 유의하세요. 다음 코드를 사용하여 이 데이터세트에 대한 부드러운 곡선을 만들 수 있습니다.

 from scipy.interpolate import make_interp_spline, BSpline

#createdata
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([4, 9, 12, 30, 45, 88, 140, 230])

#define x as 200 equally spaced values between the min and max of original x 
xnew = np. linspace ( x.min (), x.max (), 200 ) 

#define spline
spl = make_interp_spline (x, y, k= 3 )
y_smooth = spl (xnew)

#create smooth line chart 
plt. plot (xnew, y_smooth)
plt. show ()

Matplotlib의 부드러운 곡선

k 인수에 사용하는 차수가 높을수록 곡선이 더 “파형”이 됩니다. 예를 들어 k=7 인 다음 그래프를 살펴보겠습니다.

 from scipy.interpolate import make_interp_spline, BSpline

#createdata
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([4, 9, 12, 30, 45, 88, 140, 230])

#define x as 200 equally spaced values between the min and max of original x 
xnew = np. linspace ( x.min (), x.max (), 200 ) 

#define spline with degree k=7
spl = make_interp_spline (x, y, k= 7 )
y_smooth = spl (xnew)

#create smooth line chart 
plt. plot (xnew, y_smooth)
plt. show () 

Matplotlib의 부드러운 곡선 스플라인

원하는 선의 곡률에 따라 k 값을 변경할 수 있습니다.

추가 리소스

Matplotlib 플롯에 눈금선을 표시하는 방법
Matplotlib 플롯에서 진드기를 제거하는 방법
로그 눈금을 사용하여 Matplotlib 플롯을 만드는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다