用Python在Basemap上重绘绘图

2024-05-21 19:50:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我在底图上绘制散点图。但是,具有此散点图的数据会根据用户输入进行更改。我想清除数据(仅清除数据,而不是整个基本图)并重新绘制新的散点图。

这个问题类似,但没有得到回答(http://stackoverflow.com/questions/8429693/python-copy-basemap-or-remove-data-from-figure)

目前我正在用clf()关闭图形;但是,这需要我重新绘制整个basemap并将绘图分散在一起。除此之外,我正在wx面板内部进行所有重绘。基础地图重画耗时太长,我希望有一种简单的方法,只重新绘制散布点。

#Setting up Map Figure 
self.figure = Figure(None,dpi=75) 
self.canvas = FigureCanvas(self.PlotPanel, -1, self.figure) 
self.axes = self.figure.add_axes([0,0,1,1],frameon=False) 
self.SetColor( (255,255,255) ) 

#Basemap Setup 
self.map = Basemap(llcrnrlon=-119, llcrnrlat=22, urcrnrlon=-64, 
                urcrnrlat=49, projection='lcc', lat_1=33, lat_2=45, 
                lon_0=-95, resolution='h', area_thresh=10000,ax=self.axes) 
self.map.drawcoastlines() 
self.map.drawcountries() 
self.map.drawstates() 
self.figure.canvas.draw() 

#Set up Scatter Plot 
m = Basemap(llcrnrlon=-119, llcrnrlat=22, urcrnrlon=-64, 
        urcrnrlat=49, projection='lcc', lat_1=33, lat_2=45, 
        lon_0=-95, resolution='h', area_thresh=10000,ax=self.axes) 

x,y=m(Long,Lat) 

#Scatter Plot (they plot the same thing) 
self.map.plot(x,y,'ro') 
self.map.scatter(x,y,90) 

self.figure.canvas.draw() 

然后我对我的(x,y)做了一些更新。。。

#Clear the Basemap and scatter plot figures
self.figure.clf()

然后我重复上面所有的代码。(我还必须为我的面板重做我的box sizers——我没有包括这些)。

谢谢!


Tags: 数据self面板mapplot绘制figurecanvas