gpt4 book ai didi

matplotlib - 将点击事件添加到 pyplot 中的注释

转载 作者:行者123 更新时间:2023-12-02 00:49:31 24 4
gpt4 key购买 nike

我正在寻找一种方法来将“点击”事件添加到 matplotlib.pyplot 中的注释以销毁它。相关代码:

import matplotlib.pyplot as plt
plt.ion()
plt.plot()
plt.annotate("Kill me",xy=(0,0))

现在我们需要找到注解,一种方法是遍历:

plt.gca().texts

虽然可能有更好的方法。到目前为止,我还没有找到如何获取小部件/添加事件的方法。这可以使用 plt 图形 Canvas 的 mpl_connect 但我不确定,这需要通过边界框,我想避免,但是如果没有其他可用的解决方案也可以。

最佳答案

你确实可以使用 mpl_connect将选取器事件连接到 Canvas 中的对象。在这种情况下,可以为 annotate 调用提供一个 picker 参数,该参数指定应触发事件的对象周围的半径。

然后您可以直接操作触发事件的对象,该对象在事件槽中作为 event.artist 可用。

import matplotlib.pyplot as plt

fig = plt.figure()
ax=fig.add_subplot(111)
plt.plot([0,5],[0,6], alpha=0)
plt.xlim([-1,6])
plt.ylim([-1,6])

for i in range(6):
for j in range(6):
an = plt.annotate("Kill me",xy=(j,i), picker=5)


def onclick(event):
event.artist.set_text("I'm killed")
event.artist.set_color("g")
event.artist.set_rotation(20)
# really kill the text (but too boring for this example;-) )
#event.artist.set_visible(False)
# or really REALLY kill it with:
#event.artist.remove()
fig.canvas.draw()


cid = fig.canvas.mpl_connect('pick_event', onclick)

plt.show()

关于matplotlib - 将点击事件添加到 pyplot 中的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com