Matplotlib-从图中删除RectangleSelector小部件

时间:2020-09-03 11:31:30

标签: python matplotlib

我正在创建一个可视化PyQt5应用程序,该应用程序创建并显示Matplotlib图。我希望能够使用鼠标在图中选择一些点。我为此使用了RectangleSelector小部件。问题是,释放鼠标后,绘制的矩形仍保留在绘图上。使用interactive=False使矩形不可见,但是当我尝试更改要在绘图上显示的数据时,矩形仍然存在并中断了绘图自动缩放。这是interactive=True的示例: Selecting points

在加载其他数据以进行绘制后: The rectangle remains there outside of new data range

有什么方法可以从情节中删除RectangleSelector?还是至少让ax.autoscale()忽略了它?

3 个答案:

答案 0 :(得分:0)

您可以使用“退出”键清除当前形状。可以在参数state_modifier_keys中重新定义。有关详细信息,请参见here

答案 1 :(得分:0)

另一种做法是:

rectangle = RectangleSelector(...)

for artist in rectangle :
    artist.set_visible(False)
rectangle.update()

这是按下退出按钮时完成的操作,它将从图形中删除当前的矩形选择器。

答案 2 :(得分:0)

不确定您是否已解决此问题。 我用这个

    def line_select_callback(self, eclick, erelease):
        # At the beginning
        toggle_selector.RS.set_active(False)
        toggle_selector.RS.to_draw.set_visible(False)
        toggle_selector.RS.update()
        #....line_select_callback code....
        # Last line of method/function
        toggle_selector.RS.set_active(True)