我有下面的代码来显示楔形,一旦用户单击补丁,我想做些事情。因此,我将处理程序连接到"pick_event"
,并通过传递picker=True
关键字arg使能够选择补丁。
一切都很好,除非当我实际单击补丁时什么都没有发生,即处理程序似乎没有被调用。
任何人都可以重现该问题或提出解决方案吗?
from matplotlib.patches import Wedge
from matplotlib.collections import PatchCollection
import matplotlib.pyplot as plt
patches = [Wedge((5., 5.), 0.5, 30., 330., picker=True)]
fig, ax = plt.subplots()
ax.add_collection(PatchCollection(patches))
ax.set_xlim([0, 10.])
ax.set_ylim([0, 10.])
fig.canvas.mpl_connect('pick_event', lambda evt: print(evt))
plt.show()
当我添加另一个ax.scatter([2.5], [2.5], picker=True)
并单击该点时,将正确调用该处理程序。
答案 0 :(得分:1)
我认为您需要使用PatchCollection的set_picker
函数。我没有尝试,但是在文档中找到了类似的东西。
set_picker documentation