下午看《利用python进行数据分析》这本书,发现了一个宝藏包(就是安装挺难的,可以查一下csdn上面其他的文章)
首先,我们可以看以下最基础的代码长什么样子:
import warnings from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt import numpy as np import os warnings.filterwarnings('ignore') my_map = Basemap( projection='merc', llcrnrlat=10.0, urcrnrlat=55.0, llcrnrlon=60., urcrnrlon=140.0) my_map.drawcoastlines() my_map.drawcountries() plt.show()
讯享网
运行结果为:
参数解释一下:
projection='merc':表示地图是什么样子的,是平面图还是立体图,如果讲参数改成ortho,泽就变成了绘制立体球形地图,但是每个种类的地图都有他自己的必须有的参数要求,如果是画的球形地图,则需要:
讯享网my_map = Basemap( projection='ortho', lon_0=100,lat_0=0)
运行结果图为:

最少是这样设置参数,就是说明需要有一个经度值和一个纬度值
如果绘制的是平面图,则最好是给他灌四个参数,不然的出来的结果图就会是这样

如果在设置一下,就可以画出很逼真的地图来了
上代码:
map = Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=140,urcrnrlat=54) map.arcgisimage(service='ESRI_Imagery_World_2D', xpixels = 1500, verbose= True) plt.show()


service里面的内容可以更改
’NatGeo_World_Map‘:

World_Shaded_Relief:

第一个图片的绘制方法还可以变得更简单一点:
讯享网map = Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=140,urcrnrlat=54) map.bluemarble() plt.show()
就可以绘制出和第一张图片一样的效果了
向其中添加数据:
绘制少量点:
map = Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=140,urcrnrlat=54) map.bluemarble() lons = [74, 85, 135] lats = [20, 50, 35] x, y = map(lons, lats) map.plot(x, y, 'bo', markersize=5) plt.show()
运行结果:

如果想从文件里面读取,需要读取文件的经纬度,然后将其添加到lons【】和lats【】中,在和上方一样绘制就可以了,具体的讲述该包有一个十分详细的网站:https://www.osgeo.cn/pygis/basemap-basic.html
可以之后进行详细学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/120687.html