Matplotlib底图:删除绘图点

时间:2017-06-30 15:15:46

标签: python matplotlib pyside matplotlib-basemap matplotlib-widget

我试图创建一个按钮,在matplotlib底图上绘制一个随机点。唯一的问题是我希望删除先前绘制的点(即在给定时间地图上应该只有一个点。)

我认为在初始化空的Basemap之后,我可以将其保存到变量(newMap = self.map)中,所以当我想绘制一个新点时,我可以使用newMap进行绘图(即{{ 1}})。据我所知,原始底图newMap.plot(x, y, 'o')中的更改仍然存在。

任何人都知道如何清除'一个底图,以便先前绘制的点不会持续存在?

完整代码:

self.map

1 个答案:

答案 0 :(得分:2)

删除旧点并绘制新点与仅更改一个点的位置相同。

因此,您要创建一个空图并将其存储在类变量self.point, = self.map.plot([],[], 'o')

class MapWidget(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MapWidget, self).__init__(parent)
        # ....
        self.point, = self.map.plot([],[], 'o')
        self.canvas.draw()
        self.show()

然后使用你的地图(注意newmap = self.map不是副本,它是对同一地图的引用,所以不需要在这里创建新变量)并将新数据设置为存储在{{1 }}

self.point