Matplotlib行没有被'pick_event'处理程序

时间:2016-07-17 21:33:55

标签: python python-2.7 numpy matplotlib line

我正在尝试从一个点到另一个点创建一条线,如果单击它,它将从图中删除。我有一个创建一个简单线条的图,但由于某种原因,当点击它时,它不会被事件句柄'pick_event'拾取。这就是我所拥有的:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt


fig, ax = plt.subplots()
ax = fig.add_subplot(111, projection='3d')

x1 = 1
x2 = 2
y1 = 1
y2 = 1
z1 = 2
z2 = 2

ax.plot([x1, x2], [y1, y2], [z1, z2], linewidth=2)


def on_pick(event):
    event.artist.set_visible(not event.artist.get_visible())
    fig.canvas.draw()

fig.canvas.callbacks.connect('pick_event', on_pick)
plt.show()

这很简单,但基本上,我需要能够通过从一个点到另一个点给出x,y和z坐标来创建线条。为什么这条线不是拾取'pick_event'处理程序?

1 个答案:

答案 0 :(得分:1)

我想,点击一条线然后设置选择器容差太难:

...
# set 5 points tolerance
ax.plot([x1, x2], [y1, y2], [z1, z2], linewidth=2, picker=5)
...