使用plt.scatter绘制群集的np.array

问题描述

我有一个{175}形状的numpy向量,只有一列,我想使用plt.scatter对其进行绘制,但我不知道是否应该更改形状。 我的np向量由三个值0、1和2组成,其中每个值代表使用分层聚类后的聚类数。 读取Excel文件并进行一些预处理之后,这是我的代码

plt.figure(figsize=(10,7))
plt.title("Customer Dendograms")
dend = shc.dendrogram(shc.linkage(data1,method='ward'))
cluster = AgglomerativeClustering(n_clusters=3,affinity='euclidean',linkage='ward')
X=cluster.fit_predict(data1)

变量X保留了我要绘制的np向量,形状为17520。 请提供任何帮助,以便能够绘制0值为红色,一个为蓝色,两个为绿色的数据。

解决方法

您可以尝试一下(假设data1的形状为17520 x 2,而X的形状为17520 x 1)。

redClass = data1[X == 0]
blueClass = data1[X == 1] 
greenClass = data1[X == 2]
plt.scatter(redClass[:,0],redClass[:,1],c='r')
plt.scatter(blueClass[:,blueClass[:,c='b')
plt.scatter(greenClass[:,greenClass[:,c='g')
plt.show()