我想得到一条通过整数坐标的特定点的光滑曲线。相反,我得到了点之间的直线段。我尝试了interp1d(x,y,kind='cubic')
和CubicSpline
,没有任何效果。下面是我的代码:
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import interp1d,CubicSpline
x = np.arange(34)
y = [8,3,0,1,6,2,1,7,6,2,0,2,6,0,1,6,2,2,0,2,7,0,2,8,6,3,6,2,0,1,6,2,7,2]
f = CubicSpline(x, y)
plt.figure(figsize=(10,3))
plt.plot(x, y, 'o', x, f(x))
plt.show()
结果如下:
你能告诉我如何得到平滑的曲线吗?
1条答案
按热度按时间mm5n2pyu1#
现在你使用原始的x值来绘制曲线,你需要一个包含更多中间x值的新数组,Numpy的
np.linspace()
在给定的最小值和最大值之间创建了这样一个数组。