TypeError: scatter() got multiple values for argument 'c'
TypeError: scatter() got multiple values for argument 'c'
我正在尝试对我的 MFCC 数组 'signal_mfcc' 进行层次聚类,这是一个维度为 (198, 12) 的 ndarray。 198 个音频 frames/observation 和 12 个 coefficients/dimensions?
我使用随机阈值“250”和 'distance' 作为标准,如下所示:
thresh = 250
print(signal_mfcc.shape)
clusters = hcluster.fclusterdata(signal_mfcc, thresh, criterion="distance")
在指定的阈值下,输出变量'cluster'是一个长度为198或(198,)的序列[1 1 1 ... 1],我假设将所有数据指向一个单一的簇。
然后,我使用 pyplot 通过以下代码绘制 scatter() :
# plotting
print(*(signal_mfcc.T).shape)
plt.scatter(*np.transpose(signal_mfcc), c=clusters)
plt.axis("equal")
title = "threshold: %f, number of clusters: %d" % (thresh) len(set(clusters)))
plt.title(title)
plt.show()
输出为:
plt.scatter(*np.transpose(signal_mfcc), c=clusters)
TypeError: scatter() got multiple values for argument 'c'
散点图不会显示。任何可能出错的线索?
提前致谢!
从这个SO Thread,你可以看出为什么会出现这个错误。
从Scatter documentation开始,c
是第二个可选参数,也是第四个参数。此错误表示您在 np.transpose(signal_mfcc)
returns 上拆包超过 4 个项目。而你后面定义c
的时候,定义了两次,无法选择正确的
示例:
def temp(n, c=0):
pass
temp(*[1, 2], c=1)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: temp() got multiple values for argument 'c'
我正在尝试对我的 MFCC 数组 'signal_mfcc' 进行层次聚类,这是一个维度为 (198, 12) 的 ndarray。 198 个音频 frames/observation 和 12 个 coefficients/dimensions?
我使用随机阈值“250”和 'distance' 作为标准,如下所示:
thresh = 250
print(signal_mfcc.shape)
clusters = hcluster.fclusterdata(signal_mfcc, thresh, criterion="distance")
在指定的阈值下,输出变量'cluster'是一个长度为198或(198,)的序列[1 1 1 ... 1],我假设将所有数据指向一个单一的簇。 然后,我使用 pyplot 通过以下代码绘制 scatter() :
# plotting
print(*(signal_mfcc.T).shape)
plt.scatter(*np.transpose(signal_mfcc), c=clusters)
plt.axis("equal")
title = "threshold: %f, number of clusters: %d" % (thresh) len(set(clusters)))
plt.title(title)
plt.show()
输出为:
plt.scatter(*np.transpose(signal_mfcc), c=clusters)
TypeError: scatter() got multiple values for argument 'c'
散点图不会显示。任何可能出错的线索? 提前致谢!
从这个SO Thread,你可以看出为什么会出现这个错误。
从Scatter documentation开始,c
是第二个可选参数,也是第四个参数。此错误表示您在 np.transpose(signal_mfcc)
returns 上拆包超过 4 个项目。而你后面定义c
的时候,定义了两次,无法选择正确的
示例:
def temp(n, c=0):
pass
temp(*[1, 2], c=1)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: temp() got multiple values for argument 'c'