Python scipy.interpolate.make#u interp#u样条曲线给出“;x和y不兼容”;错误

Python scipy.interpolate.make#u interp#u样条曲线给出“;x和y不兼容”;错误,python,numpy,scipy,statistics,spline,Python,Numpy,Scipy,Statistics,Spline,我试图创建一个平滑的频率分布图。代码正在为某个数据集工作,但为另一个数据集提供以下错误消息: spl1=make_interp_样条曲线(bins1,data1['Frequency']。值) 文件“//envs/mlpy37/lib/python3.7/site packages/scipy/interpolate/_bsplines.py”,第805行,在make_interp_样条曲线中 raise VALUERROR('x和y不兼容') ValueError:x和y不兼容。 以下是使用

我试图创建一个平滑的频率分布图。代码正在为某个数据集工作,但为另一个数据集提供以下错误消息:

spl1=make_interp_样条曲线(bins1,data1['Frequency']。值)
文件“//envs/mlpy37/lib/python3.7/site packages/scipy/interpolate/_bsplines.py”,第805行,在make_interp_样条曲线中
raise VALUERROR('x和y不兼容')
ValueError:x和y不兼容。
以下是使用dataset的代码,该代码运行良好:

导入数学
将numpy作为np导入
作为pd进口熊猫
进口统计
从scipy.stats导入倾斜
从matplotlib导入pyplot作为plt
从scipy.interpolate导入生成插值样条线
原始数据1=[212、869、220、654、11、624、420、121、428、865、799、405、230、670、870、366、99、55、489、312、493、163、221、84、144、48、375、86、168、100]
最小值1=最小值(原始数据1)
最大值1=最大值(原始数据1)
步骤1=数学单元((最大值1-最小值1)/10)
bin_edges1=[i代表范围内的i(最小值1-1,最大值1+1,步骤1)]
bins1=[i代表范围内的i(最小值1,最大值1+1,步骤1)]
如果最大值(箱边1)<最大值1:
bin_边1.追加(最大值(bin_边1)+步骤1)
bins1.追加(最大(bins1)+步骤1)
data1=pd.DataFrame({'Frequency':pd.cut(原始数据1,bin\u edges1).value\u counts()})
x1=np.linspace(最小(箱1),最大(箱1),250)
spl1=生成插值样条曲线(BIN1,数据1[‘频率’]。值)
平滑曲线1=spl1(x1)
打印(数据1)
平均值1=统计值。平均值(原始数据1)
median1=统计数据。中值(原始数据1)
打印('Mean:{.2f}'。格式(mean1))
打印('Median:{.2f}'。格式(median1))
尝试:
打印('Mode:{.2f}'。格式(statistics.Mode(原始数据1)))
例外情况除外,如e:
打印(e)
歪斜1=歪斜(原始数据1)
如果mean1>median1:
打印('正偏斜度:'+str(偏斜度1))
elif平均值1
如果我用以下数据集替换上述代码,它将不起作用:

raw_data1=[5867066049567855954153706591192882417872207160526665684847206706767671929665366177080052975947]
我得到的完整错误信息是:

回溯(最近一次呼叫最后一次):
文件“//numericalvariablesercise_Skewness.py”,第20行,in
spl1=生成插值样条曲线(BIN1,数据1[‘频率’]。值)
文件“//envs/mlpy37/lib/python3.7/site packages/scipy/interpolate/_bsplines.py”,第805行,在make_interp_样条曲线中
raise VALUERROR('x和y不兼容')
ValueError:x和y不兼容。

有人能帮我识别代码或逻辑中的错误吗?

注释一行实际上解决了问题(或者至少它运行时,我无法验证输出)。错误消息很有用:x和y的长度应该相同

如果最大值(箱边1)#追加(max(bins1)+step1)注释掉一行实际上解决了问题(或者至少它运行时,我无法验证输出)。错误消息很有用:x和y的长度应该相同

如果最大值(箱边1)data1 = pd.DataFrame({'Frequency': pd.cut(raw_data1, bin_edges1).value_counts()})