python matplotlib 笔记(五)

用basemap可视化地理数据

显示地球的蓝色弹珠投影:

plt.figure(figsize=(8, 8))
m = Basemap(projection='ortho', resolution=None, lat_0=30, lon_0=100)
m.bluemarble(scale=0.5)

Basemap()中的参数:lat_0=30, lon_0=100表示以北纬30,东经100为图像的中心,这样图像就以中国为中心显示地球。

fig = plt.figure(figsize=(8, 8))
m = Basemap(projection='lcc', resolution=None,
            width=8E6, height=8E6, 
            lat_0=30, lon_0=110,)
#projection控制投影方式,width和height以米为单位,表示图像的宽高
m.etopo(scale=0.5, alpha=0.5)

# Map (long, lat) to (x, y) for plotting
x, y = m(106.33, 29.35) #将经纬坐标转换成可以显示的坐标
plt.plot(x, y, 'ok', markersize=5)
plt.text(x, y, 'Chongqing', fontsize=12) #显示重庆的地理位置

地图投影

当使用地图时,首要任务是确定投影类型。basemap内置了数十种投影类型,每种投影类型有不同的特点。

圆柱投影

首先编写画出经纬线的函数:

from itertools import chain

def draw_map(m, scale=0.2): # m是Basemap类
    # 画地貌渲染背景图
    m.shadedrelief(scale=scale)
    
    # 确定要画的经纬线
    lats = m.drawparallels(np.linspace(-90, 90, 13))
    lons = m.drawmeridians(np.linspace(-180, 180, 13))

    # chain将两个序列链接成一个序列
    lat_lines = chain(*(tup[1][0] for tup in lats.items())) # *运算符解包元组
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值