我正在尝试创建一条从一点到另一点的直线,如果单击它,它就会从绘图中删除。我有一个创建简单线条的图,但由于某种原因,单击事件句柄“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”处理程序?
我想,点击一行然后设置选择器容差太难了:
...
# set 5 points tolerance
ax.plot([x1, x2], [y1, y2], [z1, z2], linewidth=2, picker=5)
...
我是一名优秀的程序员,十分优秀!