我试图创建一个按钮,在matplotlib底图上绘制一个随机点。唯一的问题是我希望删除先前绘制的点(即在给定时间地图上应该只有一个点。)
我认为在初始化空的Basemap之后,我可以将其保存到变量(newMap = self.map
)中,所以当我想绘制一个新点时,我可以使用newMap
进行绘图(即{{ 1}})。据我所知,原始底图newMap.plot(x, y, 'o')
中的更改仍然存在。
任何人都知道如何清除'一个底图,以便先前绘制的点不会持续存在?
完整代码:
self.map
答案 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