0

我有一个我在matplotlib中创建的散点图我也有一个像这样的元组列表,[(1,'A' 2),(2,'B',0),(0,'D',3)]我需要与我的图表上的某个情节相关联。说当您单击某个点时,它会与某些点对齐,或者将它们放在图表的底部,不同颜色的点与不同的序列相关,当您单击某个颜色的点时,它会在图表上突出显示与其相关的点

我只是想知道使用 matplotlib 是否可以实现这些中的任何一个,如果有,是否有任何好的网站可供使用或任何特定的方法来解决这个问题?

提前致谢

4

1 回答 1

1

使用挑选事件

单击标记时向散点图添加注释的简单示例:

N = 12
x = arange(N)
y = arange(N)
labels = [unichr(ord('a') + j) for j in range(N)]

def onpick(event):
    print labels[event.ind[0]]


fig = figure()
ax1 = fig.add_subplot(111)
col = ax1.scatter(x, y, 50,  picker=True)
#fig.savefig('pscoll.eps')

def onpick(event):
    ind = event.ind[0]
    print labels[ind]
    ax1.annotate(labels[ind], (x[ind], y[ind]), xytext=(x[ind] -1, y[ind] + 1),
                 arrowprops=dict(facecolor='black', shrink=0.05))
    fig.canvas.draw()

fig.canvas.mpl_connect('pick_event', onpick)

(这假设您已使用 --pylab 启动 ipython 以正确导入)

您可以将代码替换为onpick您想要的代码(并记住存在闭包)。

这是一组很好的演示

另见mpldatacursor

于 2013-01-26T16:48:12.400 回答