我只是想绘制x,y,然后用聚类为它们着色。每个群集应具有唯一的颜色。但是我出错了。我尝试不使用numpy数组,但仍然出现错误。
“形状为(5113,)的c不能作为大小为5113的x,大小为5113的y的颜色序列”“
x = np.array(df['ip_indexed'])
print(x.shape)
y = np.array(df['geohash_indexed'])
print(y.shape)
labels = np.array(df['clusters'])
print(labels.shape)
''' output.
(5113,)
(5113,)
(5113,)
'''
LABEL_COLOR_MAP = {9066 : 'r',
9068: 'silver',
17182 : 'k',
17183: 'c',
17184: 'indigo',
17185: 'tan',
17186: 'plum',
17187: 'yello',
17188:'olive',
17189:'deeppink'
}
label_color = np.array([LABEL_COLOR_MAP[l] for l in labels])
label_color.shape
plt.figure(figsize=(50, 10))
plt.xlabel("ip_address", fontsize= 20)
plt.ylabel("geohash", fontsize= 20)
plt.title("clusters", fontsize= 50)
colors = np.random.rand(5113)
plt.scatter(x, y , c = label_color)
ValueError: c of shape (5113,) not acceptable as a color sequence for x with size 5113, y with size 5113
答案 0 :(得分:0)
我刚才也遇到了同样的问题,偶然发现这篇文章以寻找解决方案。我可以肯定地说的话:
在plt.scatter(x, y , c = label_color)
行中,x
,y
和c
的形状必须相同,我相信,这三个都是最好的如果它们是熊猫数据框。我所有成功对象的形状都是(5113, 1)
,而不是您的(5113,)
。我知道您正在测试print()
语句中的形状,但似乎有些不对。
我绝不是专业人士,在某些方面我可能是错的,但这就是我提出自己的解决方案的方式。希望它可以在正确的方向上推动您和其他人。