在matplotlib中加载mapbox底图(TransBigData)

TransBigData包介绍:地图底图 — TransBigData 0.1.28 文档https://transbigdata.readthedocs.io/zh_CN/latest/plot_map.html地图底图

使用前的设置

 TransBigData包提供了在matplotlib上绘制地图底图的功能,底图由mapbox提供,坐标系为WGS84。如果你要使用该功能,首先需要点击这个链接注册一个mapbox的账号,mapbox上注册成为开发者,并获取到一个mapbox token。 这个链接介绍了mapbox token的作用。

如果你已经得到了mapbox token,可以用以下代码为TransBigData设置mapbox token(只需要设置一次,后面重新打开python也不需要再重新设置了):

import transbigdata as tbd
#用下面代码设置你的mapboxtoken
tbd.set_mapboxtoken('pk.eyxxxxxxxxxx.xxxxxxxxx')#必须在里面设置你申请的token,直接复制此行代码无效!

另外还需要设置一个地图底图的存储位置,下一次显示同一个位置时,地图会从本地读取加载。

#设置你的地图底图存储路径
#如果你是linux或者mac系统,路径是这么写,注意最后有一个反斜杠
tbd.set_imgsavepath(r'/Users/xxxx/xxxx/')
#如果是windows系统,路径这么写,最后注意要两个斜杠以防转义
tbd.set_imgsavepath(r'E:\pythonscript\xxx\\')

设置好后,下次绘制底图时,会在你设置的路径下创建一个tileimg文件夹,底图都放在里面 尝试一下下面的代码,看看能否成功绘制底图

#定义显示范围范围
bounds = [113.6,22.4,114.8,22.9]
#创建图框
import matplotlib.pyplot as plt
fig =plt.figure(1,(8,8),dpi=250)
ax =plt.subplot(111)
plt.sca(ax)
#添加地图底图
tbd.plot_map(plt,bounds,zoom = 11,style = 4)
#添加比例尺和指北针
tbd.plotscale(ax,bounds = bounds,textsize = 10,compasssize = 1,accuracy = 2000,rect = [0.06,0.03],zorder = 10)
plt.axis('off')
plt.xlim(bounds[0],bounds[2])
plt.ylim(bounds[1],bounds[3])
plt.show()

_images/output_6_0.png

地图底图加载

TransBigData包的底图绘制功能由plot_map包提供。首先确保你的plot_map包在0.3.3版本以上:

pip install -U plot-map

transbigdata.plot_map(pltboundszoomstyle=4printlog=Falsestyleid='dark')

添加地图底图

输入

bounds:List

底图的绘图边界,[lon1,lat1,lon2,lat2] (WGS84坐标系) 其中,lon1,lat1是左下角坐标,lon2,lat2是右上角坐标

zoom:number

底图的放大等级,越大越精细,加载的时间也就越久,一般单个城市大小的范围,这个参数选取12到16之间

style:number

地图底图的样式,可选1-10,对应分别如下(需要plot_map包在0.3.3版本以上)

printlog:bool

是否显示日志

底图样式1:streets

_images/1.png

底图样式2:outdoors

_images/2.png

底图样式3:satellite

_images/3.png

底图样式4:light

_images/4.png

底图样式5:dark

_images/5.png

底图样式6:light-ch(中文)

_images/6.png

底图样式7:ice creem

_images/7.png

底图样式8:night

_images/8.png

底图样式9:terrain

_images/9.png

底图样式10:basic blue

_images/10.png

用法:
​​​​​​​#设定显示范围
bounds = [lon1,lat1,lon2,lat2]
tbd.plot_map(plt,bounds,zoom = 12,style = 4)

指北针和比例尺

transbigdata.plotscale(axboundstextcolor='k'textsize=8compasssize=1accuracy='auto'rect=[0.1, 0.1]unit='KM'style=1**kwargs)

为底图添加指北针和比例尺

输入

bounds:List

底图的绘图边界,[lon1,lat1,lon2,lat2] (WGS84坐标系) 其中,lon1,lat1是左下角坐标,lon2,lat2是右上角坐标

textsize:number

标注文字大小

compasssize:number

标注的指北针大小

accuracy:number

标注比例尺的长度(米)

unit:str

‘KM’,’km’,’M’,’m’ 比例尺的单位

style:number

1或2,比例尺样式

rect:List

比例尺在图中的大致位置,如[0.9,0.9]则在右上角

tbd.plotscale(ax,bounds = bounds,textsize = 10,compasssize = 1,accuracy = 2000,rect = [0.06,0.03])

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值