我有一个散点图,由不同的分散调用组成:import matplotlib.pyplot as plt
import numpy as np
def onpick3(event):
index = event.ind
print '--------------'
print index
artist = event.artist
print artist
fig_handle = plt.figure()
x,y = np.random.rand(10),np.random.rand(10)
x1,y1 = np.random.rand(10),np.random.rand(10)
axes_size = 0.1,0.1,0.9,0.9
ax = fig_handle.add_axes(axes_size)
p = ax.scatter (x,y, marker='*', s=60, color='r', picker=True, lw=2)
p1 = ax.scatter (x1,y1, marker='*', s=60, color='b', picker=True, lw=2)
fig_handle.canvas.mpl_connect('pick_event', onpick3)
plt.show()
我希望这些点可以点击,并得到所选索引的x,y。
但是,由于scatter被多次调用,我得到相同的索引两次,因此我不能在onpick3方法中使用x[index]
有没有一种简单明了的方法来获得分数?在
似乎event.artist返回的PathCollection与{}(本例中是p和{})返回的相同。
但是我找不到任何方法来使用它来提取所选索引的x,y
尝试使用event.artist.get_paths()-但它似乎并没有返回所有的散点,而是只返回了我单击的那一个。所以我真的不确定event.artist返回的是什么,event.artist.get_paths()函数返回的是什么
编辑
似乎event.artist._offsets给出了一个具有相关偏移量的数组,但由于某些原因,当尝试使用event.artist.offsets时,我得到
^{pr2}$
(虽然我理解docs,但它应该在那里)