绘制Andrew曲线代码和报错信息如下:
plt.subplots(figsize = (10,8))
pd.plotting.andrews_curves(data=iris,'species',colormap='cool')
- 发现问题:“positional argument follows keyword argument”这句话的意思是“位置参数出现在关键字参数之后”
- 问题定位:参数传递相关规则。在Python中,函数调用时参数的传递是有顺序和规则的。位置参数是按照函数定义时参数的顺序依次传递的,而关键字参数则是通过参数名来指定值的。按照Python的语法规则,在函数调用时,关键字参数必须放在位置参数之后,否则就会出现这个错误提示。
例如,对于函数def func(a, b),如果调用时写成func(b=2, 1),就会出现“positional argument follows keyword argument”的错误,因为位置参数1被放在了关键字参数b=2之后。正确的调 用方式应该是func(1, b=2)或者func(a=1, b=2)
3.解决问题:在 pandas.plotting.andrews_curves 函数中,并没有直接名为 data 的参数。相反,数据是通过参数 frame 传递的,它接受一个 Pandas DataFrame 对象。因此,不能直接写成 data=iris,而应该写成 frame=iris 或直接传递 iris作为第一个位置参数。
plt.subplot(figsize = (6,4))
pd.plotting.andrews_curves(iris,'species',colormap='cool')
至此,问题解决。