文章目录
Matplotlib
Matplotlib 是Python中类似 MATLAB 的绘图工具,熟悉 MATLAB 也可以很快的上手 Matplotlib。
1. 认识Matploblib
1.1 Figure
在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。
import matplotlib.pyplot as plt
fig = plt.figure()
1.2 Axes
在拥有Figure对象之后,在作画前我们还需要轴,没有轴的话就没有绘图基准,所以需要添加Axes。也可以理解成为真正可以作画的纸。
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='An Example Axes',
ylabel='Y-Axis', xlabel='X-Axis')
plt.show()
Basemap
Basemap 是 Python 可视化库 Matplotlib 下的一个工具包,主要功能是绘制二维地图,对于空间数据的可视化非常重要。Basemap本身不会进行任何绘图,但提供了将坐标转换为25个不同地图投影之一的功能。 Matplotlib也可以用于绘制变换坐标中的轮廓,图像,向量,线或点。basemap包括GSSH海岸线数据集,以及来自GMT的河流、州和国家边界的数据集。这些数据集可用于在地图上以几种不同的分辨率绘制海岸线,河流和政治边界。basemap底层使用了Geometry Engine-Open Source(GEOS)库,用来将海岸线和边界特征剪切到所需的地图投影区域。此外,basemap还提供读取shapefile的功能。
1.导入包
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
2.新建地图
# 地图采用默认投影方式:普通圆柱投影模式
map = Basemap() # Basemap类有很多属性,这里全都使用默认参数
参数说明:
- llcrnrlat – 左下角的纬度
- llcrnrlon – 左下角的经度
- urcrnrlat – 右上角的纬度
- urcrnrlon – 右上角的经度
- resolution参数:设置分辨率级别,这个选项很重要,在全局地图上设置高分辨率边界可能非常慢。
符号 | 含义 |
---|---|
‘c’ | 原始 |
‘l’ | 低 |
‘i’ | 中 |
‘h’ | 高 |
‘f’ | 完整 |
None | 未使用边界 |
3.画海岸线
map.drawcoastlines()
参数说明:
- linewidth : 线宽度
- linestyle : 设置线风格,参照matplotlib
- color :颜色,参照matplotlib
- antialiased:抗锯齿
- ax :轴实例
- zorder: 海岸线图层位置
4.为大陆内部着色(通过填充海岸线多边形)
map.fillcontinents()
参数同drawcoastlines()
5.绘制国家边界
map.drawcountries()
6.绘制北美的州界
map.drawstates()
7.绘制河流。
map.drawrivers()
8.绘制高分辨率海陆掩码作为图像,指定土地和海洋颜色。
map.drawlsmask()
9.绘制一张NASA蓝色大理石图像作为地图背景
map.bluemarble()
10.绘制一个阴影浮雕图像作为地图背景
map.shadedrelief()
11.绘制etopo浮雕图像作为地图背景
map.etopo()
12.使用abitrary图像作为地图背景。图像必须是全球的,从国际数据线向东,南极向北,以纬度/经度坐标覆盖世界。
map.warpimage()
13.绘图
plt.show()
14.存储结果
plt.savefig('test.png')
案例
# 地图采用默认投影方式:普通圆柱投影模式
map = Basemap() # Basemap类有很多属性,这里全都使用默认参数
# 首先给地球涂上蓝色的一层
map.drawmapboundary(fill_color='aqua')