Python basemap地图可视化

Python basemap地图可视化

Basemap

Basemap是可视化库Matplotlib的拓展包,可以绘制二维地图,就像下图这样,库内部包含了国家边界、河流等数据集
在这里插入图片描述
经度范围是-360到720,纬度范围是-90到90,绘制坐标需要使用map(lon,lat)把地图坐标转换到matplotlib的坐标系中

安装

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
安装Basemap之前需要先安装pyproj,下载对应的安装包,然后在下载的文件夹下使用命令行安装:
pip install pyproj-1.9.5.1-cp36-cp36m-win_amd64.whl
pip install basemap-1.1.0-cp36-cp36m-win_amd64.whl

使用

请添加图片描述
在这里插入图片描述

实现第一种效果:

import time
import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

t_color = ['g', 'b', 'r', 'c', 'k', 'm', 'y', 'orange', 'peru', 'navy', 'thistle']

def show_map(lon, lat, color='m'):
    plt.figure(figsize=(25, 10))
    map = Basemap(llcrnrlon=None, llcrnrlat=None, urcrnrlon=None, urcrnrlat=None, )
    map.etopo()
    map.drawcoastlines(linewidth=0.5)
    map.drawrivers()
    map.drawcountries()
    map.drawstates()
    map.drawmapboundary()
    lon, lat = map(lon, lat)
    plt.scatter(lon, lat, marker='+', color=color, linewidth=1)
    file_name = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
    plt.savefig(file_name + '.png')
    plt.clf()
num = 3000
x = 360*np.random.randn(num)
y = 90* np.sin(0.05 * x)
show_map(x,y)

实现第二种效果:

import time
import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

t_color = ['g', 'b', 'r', 'c', 'k', 'm', 'y', 'orange', 'peru', 'navy', 'thistle']

def show_map(lon, lat, color='m'):
    plt.figure(figsize=(25, 10))
    map = Basemap(projection='ortho',llcrnrlon=None, llcrnrlat=None, urcrnrlon=None, urcrnrlat=None,lat_0=30, lon_0=110)
    map.etopo()
    map.drawcoastlines(linewidth=0.5)
    map.drawrivers()
    map.drawstates()
    map.drawmapboundary()
    lon, lat = map(lon, lat)
    plt.scatter(lon, lat, color=color, linewidth=0.5)
    file_name = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
    plt.savefig(file_name + '.png')
    plt.clf()
num = 5000
x = 360*np.random.random(num)
y = 40* np.sin(0.1 * x)
show_map(x,y)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值