Python: interpolate.UnivariateSpline package 'error: (m>k) failed for hidden m: fpcurf0:m=0'
Python: interpolate.UnivariateSpline package 'error: (m>k) failed for hidden m: fpcurf0:m=0'
我一直在尝试绘制一条线以及样条拟合。以下是我的代码的通用版本。 'x_coord' 和 'y_coord' 是包含浮点值列表的列表。
import matplotlib.pyplot as plt
from scipy import interpolate as ipl
for a in range(len(x_coord)):
plt.plot(x_coord[a],y_coord[a],label='Label')
yinterp = ipl.UnivariateSpline(x_coord[a],y_coord[a],s=1e4)(x_coord[a])
plt.plot(x_coord[a],yinterp,label='Spline Fit')
虽然我相信这在过去对我有用,但我现在收到一条错误消息:
/.../Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/scipy/interpolate/fitpack2.pyc in __init__(self, x, y, w, bbox, k, s, ext)
165
166 data = dfitpack.fpcurf0(x,y,k,w=w,
--> 167 xb=bbox[0],xe=bbox[1],s=s)
168 if data[-1] == 1:
169 # nest too small, setting to maximum bound
error: (m>k) failed for hidden m: fpcurf0:m=0
我见过类似错误消息的案例(例如 dfitpack.error: (m>k) failed for hidden m: fpcurf0:m=1),只有在那个特定案例中似乎存在涉及字典的问题,其中 none 在我的代码中使用。
如有任何关于此事的建议,我们将不胜感激。
您正在尝试实例化一个 UnivariateSpline
具有零长度数组的对象
>>> from scipy.interpolate import UnivariateSpline
>>> UnivariateSpline([], [])
<snip>
dfitpack.error: (m>k) failed for hidden m: fpcurf0:m=0
>>>
>>> UnivariateSpline([1], [2])
Traceback (most recent call last):
<snip>
dfitpack.error: (m>k) failed for hidden m: fpcurf0:m=1
错误可能是由 this line 触发的,它将隐藏变量 m
设置为 x
的长度,并检查您是否至少有 k+1
个点k
是样条度数(默认为三次,k=3)。
>>> spl = UnivariateSpline(range(4), range(4))
>>> spl(2)
array(2.0)
我一直在尝试绘制一条线以及样条拟合。以下是我的代码的通用版本。 'x_coord' 和 'y_coord' 是包含浮点值列表的列表。
import matplotlib.pyplot as plt
from scipy import interpolate as ipl
for a in range(len(x_coord)):
plt.plot(x_coord[a],y_coord[a],label='Label')
yinterp = ipl.UnivariateSpline(x_coord[a],y_coord[a],s=1e4)(x_coord[a])
plt.plot(x_coord[a],yinterp,label='Spline Fit')
虽然我相信这在过去对我有用,但我现在收到一条错误消息:
/.../Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/scipy/interpolate/fitpack2.pyc in __init__(self, x, y, w, bbox, k, s, ext)
165
166 data = dfitpack.fpcurf0(x,y,k,w=w,
--> 167 xb=bbox[0],xe=bbox[1],s=s)
168 if data[-1] == 1:
169 # nest too small, setting to maximum bound
error: (m>k) failed for hidden m: fpcurf0:m=0
我见过类似错误消息的案例(例如 dfitpack.error: (m>k) failed for hidden m: fpcurf0:m=1),只有在那个特定案例中似乎存在涉及字典的问题,其中 none 在我的代码中使用。
如有任何关于此事的建议,我们将不胜感激。
您正在尝试实例化一个 UnivariateSpline
具有零长度数组的对象
>>> from scipy.interpolate import UnivariateSpline
>>> UnivariateSpline([], [])
<snip>
dfitpack.error: (m>k) failed for hidden m: fpcurf0:m=0
>>>
>>> UnivariateSpline([1], [2])
Traceback (most recent call last):
<snip>
dfitpack.error: (m>k) failed for hidden m: fpcurf0:m=1
错误可能是由 this line 触发的,它将隐藏变量 m
设置为 x
的长度,并检查您是否至少有 k+1
个点k
是样条度数(默认为三次,k=3)。
>>> spl = UnivariateSpline(range(4), range(4))
>>> spl(2)
array(2.0)