Python和从图中删除注释

2023-12-21

我在 wxpython GUI 中使用 matplotlib。简而言之,我绘制了一堆数据。然后,我单击一个数据点(使用位于以下位置的 DataCursor:

是否有与 MATLAB 的 datacursormode 等效的 matplotlib? https://stackoverflow.com/questions/4652439/is-there-a-matplotlib-equivalent-of-matlabs-datacursormode

or

wxPython 中 matplotlib 上的弹出注释 https://stackoverflow.com/questions/11162401/pop-up-annotations-on-matplotlib-within-wxpython

第二个链接是我的实际实现。我从其他类中引用了 datacursor 类。我想知道如何通过单击事件按钮来删除注释?例如,我有一个事件按钮可以更新我的散点图(通过使用plot_handle.set_data,而不是通过清除图形)。但是,无论该点是否存在,注释都保留在原来的位置。我该如何删除它?

Thanks!


大多数 matplotlib 对象都有一个remove()函数(我认为它继承自Artist)。只需在要删除的对象上调用它即可。

Edit:

如果你有

dc = DataCursor(...) # what ever aruguements you give it
# bunch of code
dc.annotation.remove()
del dc
plt.draw() # need to redraw to make remove visible

Python 没有“私有”属性的概念,因此您只需进入对象内部并调用注释上的删除即可。看课程教程以获取更多详细信息 http://docs.python.org/tutorial/classes.html.

这样做的缺点是,现在你拥有的对象处于一种奇怪的状态。如果您有任何其他参考,他们的行为可能会很糟糕。如果您想保留DataCursor你周围的物体可以修改annotation使用它的对象set_*功能或更改其可见性以暂时隐藏它(doc http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.text.Text)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python和从图中删除注释 的相关文章

随机推荐