我正在尝试绘制具有独特颜色的聚类,但出现错误

时间:2018-08-02 17:01:15

标签: python matplotlib scatter-plot

我只是想绘制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

1 个答案:

答案 0 :(得分:0)

我刚才也遇到了同样的问题,偶然发现这篇文章以寻找解决方案。我可以肯定地说的话: 在plt.scatter(x, y , c = label_color)行中,xyc的形状必须相同,我相信,这三个都是最好的如果它们是熊猫数据框。我所有成功对象的形状都是(5113, 1),而不是您的(5113,)。我知道您正在测试print()语句中的形状,但似乎有些不对。

我绝不是专业人士,在某些方面我可能是错的,但这就是我提出自己的解决方案的方式。希望它可以在正确的方向上推动您和其他人。