0

我有一个带有时间序列和一条或几条 axvspan 线的图,以突出显示某些区域并提取时间序列值和瞬时值,但我希望可以使用按钮删除一条或所有这些 axvspan 线。我查看了一些有关如何删除线条的示例(如何删除在 Matplolib 中使用鼠标悬停事件创建的绘图线?),但我找不到与 axvspan 线条相关的任何内容。这是我用来创建 axvspan 行的代码

    def on_click(event):
        global x0
        x0 = event.xdata

    def on_release(event):
        global force_values
        if force_value == "Min":
            self.axes.axvspan(x0,event.xdata, facecolor='y', alpha=0.5)
            get_data(frames,force_values,x0,event.xdata)
        else:
            self.axes.axvspan(x0,event.xdata, facecolor='r', alpha=0.5)
            get_data(frames,force_values,x0,event.xdata)

在此先感谢您的帮助。亲切的问候伊沃

4

1 回答 1

4

几乎所有artist对象都有一个remove成员函数,可以将它们从轴上移除:

aspan = self.axes.axvspan(x0,event.xdata, facecolor='y', alpha=0.5)
# do stuff
aspan.remove()
plt.draw()

如果你需要做一堆,那么你只需要跟踪它们

self.aspan_list = []
self.aspan_list.append(self.axes.axvspan(x0,event.xdata, facecolor='y', alpha=0.5))
#...
for aspan in self.aspan_list:
    aspan.remove()
于 2013-11-05T04:11:18.523 回答