0

我有一个距离矩阵,我想将其绘制为 2D 散点图。

我通过 sklearn.manifold 找到了一种方法:

mds = MDS(n_components=2, dissimilarity='precomputed')
X_r = mds.fit(jac_sim).embedding_
plt.figure()
plt.scatter(X_r[:,0],X_r[:,1],c="red")
plt.savefig((args.Directory + "/MDS2.svg"), format = "svg")

jac_sim 是我的距离矩阵,看起来像这样: 在此处输入图像描述

这段代码给了我下一个情节: 在此处输入图像描述

我想从距离矩阵中携带列或索引的名称,以便我可以按 Indiv 编号对图中的点进行颜色编码,并能够放置标签。我试图检查 X_r 文件,但它只包含散点图的坐标,但没有原点信息。

如何按列/索引名称对其进行颜色编码?

4

1 回答 1

0

如果你知道你的大小jac_sim不会改变,你总是知道 Indiv 数字在哪里,所以你可以使用不同的数据切片做两个散点图:

mds = MDS(n_components=2, dissimilarity='precomputed')
X_r = mds.fit(jac_sim).embedding_
plt.figure()
plt.scatter(X_r[:3:,0],X_r[:3:,1],c="red")
plt.scatter(X_r[3::,0],X_r[3::,1],c="blue")
plt.savefig((args.Directory + "/MDS2.svg"), format = "svg")
于 2019-01-18T15:42:36.073 回答