Как построить плавную кривую в 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 с логарифмическими масштабами

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *