将鼠标悬停在某个点上时,显示文字。 Matplotlib

时间:2016-02-29 16:36:27

标签: python matplotlib

我知道我要问的解决方案是this one

情况如下:

我有一个矩阵,其第一行是标识号列表。矩阵的每列(有M列)是列的标识号加上N个分量的向量。我采用这些向量中的每一个并执行聚类。一旦我在N维空间中得到了簇,我就用PCA缩小空间,得到一个2维的空间,我可以在其中绘制矢量。

有K个簇,每个都包含一些M个向量,在PCA之后是2个向量的向量。我将这些M 2-dim向量保存在与K簇相对应的组中,然后我用不同的颜色绘制每个组以区分它们。

据我所知,如果我使用数据X=[x1,...,xn]Y=[y1,...,yn]绘制散点图并编写picker=true,那么当我点击绘图中的第j个点时,将会返回索引j。当然,当我绘制K次(绘制K个簇)时,会有K个点具有索引= 0.由于以下原因,这是有问题的:

标识号可以放入列表ids = thematrix[0, :](第一行)。我的想法是,当我点击一个点时,我想获得一个正确地将该点与id相关联的索引。但由于很多点都有index = 0,1,...,然后我点击了很多点,我得到了相同的id。

这是我用来绘制聚类和获取索引的代码。

for i in xrange(len(useful_clusters)):
        cluster = useful_clusters[i]
        colour = colours[i]
        ax.scatter(cluster[:, 0], cluster[:, 1], color=colour, marker='o', s=np.pi * 3 ** 2, alpha=0.95, lw=0, picker=True)
    fig.canvas.mpl_connect('pick_event', onpick3)

我如何按ids给出的顺序绘制每一个点,以便当我点击任何一点时,我正确地得到对应于该点的id?

感谢您的帮助。

0 个答案:

没有答案