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 ()
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 ()
원하는 선의 곡률에 따라 k 값을 변경할 수 있습니다.
추가 리소스
Matplotlib 플롯에 눈금선을 표시하는 방법
Matplotlib 플롯에서 진드기를 제거하는 방법
로그 눈금을 사용하여 Matplotlib 플롯을 만드는 방법