本文主要是介绍Python basemap地图可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Python basemap地图可视化
- 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 pltt_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 pltt_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)
这篇关于Python basemap地图可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!