在Python中的底图上重新绘制图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Python中的底图上重新绘制图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1811字,纯文字阅读大概需要3分钟。
内容图文
![在Python中的底图上重新绘制图](/upload/InfoBanner/zyjiaocheng/675/cfe1939a29304bfc9d73308b72fc8e99.jpg)
我正在底图上绘制散点图.但是,具有此散点图的数据会根据用户输入而变化.我想清除数据(仅清除数据-而非整个底图),然后重新绘制新的散点图.
这个问题是相似的,但未得到回答(https://stackoverflow.com/questions/8429693/python-copy-basemap-or-remove-data-from-figure)
目前,我正在用clf()结束图.但是,这需要我重新绘制整个底图和散点图.最重要的是,我正在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()
然后,我重复以上所有代码. (我还必须为面板重做框大小调整器-我没有包括这些).
谢谢!
解决方法:
matplotlib.pyplot.plot文档中提到plot()命令返回具有xdata和ydata属性的Line2D美术师,因此您可以执行以下操作:
# When plotting initially, save the handle
plot_handle, = self.map.plot(x,y,'ro')
...
# When changing the data, change the xdata and ydata and redraw
plot_handle.set_ydata(new_y)
plot_handle.set_xdata(new_x)
self.figure.canvas.draw()
不幸的是,我没有设法使以上内容适用于收藏或3d projections.
内容总结
以上是互联网集市为您收集整理的在Python中的底图上重新绘制图全部内容,希望文章能够帮你解决在Python中的底图上重新绘制图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。