ax1.scatter(x[:,0],x[:,1],cmap="tab20c",s=2,c=y,marker='.')
其中x是一个三维数组,y是一个一维数组
出来的一张图(如下)被颜色为了三个部分
我想知道怎么分别得到各个部分的数据,谢谢
x[y==1]
索引y=1的类别,然后以此类推unique(y)
查看y里面有哪些值你要根据图得出结果?不太明白,如果根据图算出数据,我告诉你,不可能
题主可以看一下面的代码,是我最近画散点图的例子,也许就明白了
color = ['r', 'g', 'b']
marker = ['s', 'o', 'x']
for l, c, m in zip(np.unique(target), color, marker):
plt.scatter(x_pca[target == l, 0],
x_pca[target == l, 1],
c=c, label=['off' if l == 0 else 'in'], marker=m)
x_pca对应你的X数据,target是标签,你的写法ax1.scatter(x[:,0],x[:,1],cmap="tab20c",s=2,c=y,marker='.')中,x[:,0]是数据列,x[:,1]是标签列,可以换为我的写法,指定标签为0,1,2的数据,就可以了