basemapper是什么,mybatis basemapper实现
底图模块底图是干什么的底图是Matplotlib的一个子包,负责地图绘制。在数据可视化过程中,我们常需要将数据在地图上画出来。比如说我们在地图上画出城市人口,飞机航线,军事基地,矿藏分布等等。这样的地理绘图有助于读者理解空间相关的信息。安装不能直接使用点安装
下载底图和pyproj(与自己的大蟒版本和电脑版本对应)
地址:https://www。lfd。UCI。edu/~ Goh lke/python libs/
在命令行模式下使用pip/pip3安装
先执行pip3安装pyproj路径。万海
再执行pip3安装底图路径。万海
开始画图画一个世界地图将matplotlib.pyplot作为血小板计数从mpl_toolkits.basemap导入基础地图。fig(figsize=(10,6))m=Basemap() #创建一个地图m.drawcoastlines() #画海岸线plt.show() #显示图像
显示出国家分界线(只需加一行代码)m.drawcounties(线宽=1) #画国家分界线画中国地图
在建立地图时添加中国的经纬度参数将matplotlib.pyplot作为血小板计数从mpl_toolkits.basemap导入basemapplt。fig(figsize=(10,6))m=底图(llcrnrlon=77,llcrnrlat=14,urcrnrlon=140,urcrnrlat=51,projection=lcc ,lat_1=33,lat_2=45,lon_0=100)# m=底图(llcrnrlon=73,llcrnrlat=18,urcrnrlon=1
为中国地图添加省份下载中国大陆和台湾省的行政区域的形状文件,下载后解压
地址:https://gadm。org/download _ country _ v3超文本标记语言
将matplotlib.pyplot作为血小板计数从mpl_toolkits.basemap导入basemapplt。fig(figsize=(10,6))m=底图(llcrnrlon=77,llcrnrlat=14,urcrnrlon=140,urcrnrlat=51,projection=lcc ,lat_1=33,lat_2=45,lon _ 0=100)m .绘制国家(线宽=1.5)m .绘制海岸线()中国= E:新建文件夹Basemap_china_shape#加入中国大陆的省界m .读取形状文件(China gadm 36 _ CHN _ shp gadm 36 _ CHN _ 1 , states ,drawbounds=True)#加入台湾的省界m . readshapefile(中国 gadm 36 _ TWN _ shp gadm 36 _ TWN _ 1 ,台湾,drawbounds=True)plt.show()
在地图上加上经纬度将matplotlib.pyplot作为血小板计数从mpl_toolkits.basemap导入Basemapimport numpy作为NP工厂。fig(figsize=(10,6))m=底图(llcrnrlon=77,llcrnrlat=14,urcrnrlon=140,urcrnrlat=51,projection=lcc ,lat_1=33,lat_2=45,lon_0=100)m.drawcountries(线宽=1.5)m.drawcoastlines()China=。新建文件夹Basemap_china_shape#加入中国大陆的省界m .读取形状文件(China gadm 36 _ CHN _ shp gadm 36 _ CHN _ 1 , states ,drawbounds=True)#加入台湾的省界m . readshapefile(中国 gadm 36 _ TWN _ shp gadm 36 _ TWN _ 1 ,台湾,drawbounds=True)#在地图上加上经纬度parallels=np.linspace(3,55,5) #生成3到55之间的5个等差数列m.drawparallels(parallels,labels=[真,假,假,假])子午线=np.linspace(70,140,m.drawparallels(子午线,标签=[假,假,假,真])plt.show()
通过经纬度在地图上标出点将matplotlib.pyplot作为血小板计数从mpl_toolkits.basemap导入Basemapimport numpy作为NP工厂。fig(figsize=(10,6))m=Basemap() #实例化一个mapm.drawcoastlines() #画海岸线m . drawmap boundary(fill _ color= white )m . fill contrasts(color= white ,lake_color=white) #画大洲,颜色填充为白色parallels=np.arange(-90 . 90. 10.) # 这两行画纬度,范围为[-90,90]间隔为10m.drawparallels(parallels,labels=[False,True,True,False])经线=np.arange(-180 . 180. 20.) # 这两行画经度,范围为[-180,180]间隔为10m。画子午线(子午线,标签=[真,假,假,真])lon=[-140,0,-20,160,-100] #西负东正lat=[60,0,-30,40,-30] #北正南负伦,纬度=m(伦,纬度)#伦,纬度为给定的经纬度,可以使单个的,也可以是列表m.scatter(lon,lat,s=100,c=red) #标注出所在的点,s为点的大小,还可以选择点的性状和颜色等属性plt.show()
从mpl_toolkits.basemap导入basemappimport matplotlib。py绘制为pltimport numpy绘制为NP PLT。RC params[ font。sans-serif ]=[ sim hei ]#用来正常显示中文标签PLT。RC params[轴。unicode _ MINUS ]=False #用来正常显示负号# 读取数据names=[]pops=[]lats=[]lons=[]countries=[]file=open( test _ file ,encoding=utf-8 ).readlines()#循环遍历每一行数据对于文件中的行:信息=行。拆分()名称。append(info[0])弹出。append(float(info[1]))lat=float(info[2][:-1])#读取纬度的数字部分if info[2][-1]==S: #如果是南极则取负号纬度=-纬度。append(lat)lon=float(info[3][:-1])if info[3][-1]== W :#读取经度的数字部分lon=-lon 360.0 #如果是西经则取负号朗斯。附加(lon)country=info[4]countries。附加(国家)工厂。fig(figsize=(10,6))#投影参数规定了投影方法。改变投影方法,绘图结果也将非常不同。map=底图(投影=ortho ,lat_0=35,lon_0=120,分辨率=l) #实例化一个地图#画海岸线地图.绘制海岸线(线宽=0.25)#画国家分界线map.drawcountries(线宽=0.25)#绘制地图投影区域的边缘(投影肢体)图。drawmapboundary(fill _ color= # 689 Cd2 )#每隔30度绘制纬度/经度网格线。地图。画子午线(np.arange(0,360,30))地图。画平行线(NP。arange(-90,90,30))#用不同的颜色填满大陆地图。填充大陆(color= # bf9e 30 ,lake_color=#689CD2 ,zorder=0)#计算纬度/经度网格的自然地图投影坐标。# 我们想要把经纬度对应图像的像素点,需要转换x,y=map(lons,lats)max _ pop=max(pops)size _ factor=80.0y _ offset=15.0 rotation=30 for I,j,k,name in zip(x,y,pops,names):size=size _ factor * k/max _ pop cs=map。scatter(I,j,s=size,marker=o ,color=#FF5600) plt.text(i,j y_offset,name,rotation=rotation,fontsize=10)plt亚洲主要城市与人口)plt.show()
底图应用实例蓝色弹珠将matplotlib.pyplot作为血小板计数从mpl_toolkits.basemap导入basemapplt。fig size=(8,8))#正射投影,投影原点设在了上海周边m=底图(投影=正射,分辨率=无,lat_0=30,lon_0=120)#图像原始分辨率是5400*2700,设置比例=0.5以后分辨率为2700*1350,如此作图# 迅速不少也不那么占用内存了蓝色大理石(标度=0.5)
更多有趣的内容阅读https://www.jianshu.com/p/e36d1b4c455a