我有下面的代码来显示一个按钮,我想做一些事情,一旦用户点击补丁。因此,我将一个处理程序连接到"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)并单击该点时,处理程序被正确调用。
发布于 2019-09-19 20:14:42
我认为您需要使用PatchCollection的set_picker函数。我没有尝试,但我在文档中找到了类似的东西。set_picker documentation
https://stackoverflow.com/questions/58010018
复制相似问题