我有一个Python脚本,它绘制了很多(n)行,每个行都有10个点,我正在尝试使它能够单击一条线,它将打印出该行的id和该行中的点的id。到目前为止,我得到的是:
def onpick(event):
ind = event.ind
s = event.artist.get_gid()
print s, ind
#x and y are n x 10 arrays
#s is the id of the line
for s in range(n):
ax.plot(x[s,:],y[s,:],'^',color=colors(s),picker=2,gid=str(s))
这很好,给了我一个有点像这样的情节(我之前已经把彩色框和色条放在适当的位置以供参考):
我可以点击一个点,它会打印出
^{pr2}$**问题是-**如果我点击两个非常接近的点,它就会打印出来
0 [2 3]
或者类似的。我不能再缩小“选取器”的距离,因为这会使鼠标很难精确地处于正确的位置来拾取一个点。在
我想要的是一种方法来限制选择仅是最近的点。 有什么想法吗?在
如果只想打印最近点的索引,则需要找出其中哪一个最接近mouseevent。在
mouseevent在数据坐标中的位置是通过
event.mouseevent.xdata
(或ydata
)获得的。然后需要计算距离并返回最近点的索引。在相关问题 更多 >
编程相关推荐