要扩展@tcaswell所说的内容,请参见此处的文档:http
://matplotlib.org/users/event_handling.html
但是,您可能会发现选择事件的快速演示很有用:
import matplotlib.pyplot as pltdef on_pick(event): artist = event.artist xmouse, ymouse = event.mouseevent.xdata, event.mouseevent.ydata x, y = artist.get_xdata(), artist.get_ydata() ind = event.ind print 'Artist picked:', event.artist print '{} vertices picked'.format(len(ind)) print 'Pick between vertices {} and {}'.format(min(ind), max(ind)+1) print 'x, y of mouse: {:.2f},{:.2f}'.format(xmouse, ymouse) print 'Data point:', x[ind[0]], y[ind[0]] printfig, ax = plt.subplots()tolerance = 10 # pointsax.plot(range(10), 'ro-', picker=tolerance)fig.canvas.callbacks.connect('pick_event', on_pick)plt.show()
确切的处理方式取决于您使用的艺术家(换句话说,您使用
ax.plotvs.
ax.scattervs.
ax.imshow?)。
选择事件将具有不同的属性,具体取决于所选的艺术家。永远存在
event.artist和
event.mouseevent。大多数具有单独元素(例如
Line2Ds
Collections等)的艺术家将具有被选为的项目索引的列表
event.ind。
如果您想绘制多边形并在其中选择点,请参见:http :
//matplotlib.org/examples/event_handling/lasso_demo.html#event-handling-
example-pre-lasso-demo-
py
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)