Matplotlib学习笔记:绘制流线图

目录

气象上常见的矢量图有三种表现形式:箭头图、流线图、风羽图。本文主要介绍流线图的绘制。

与箭头图一样,流线图需要准备两个分量的数据,并绘制地图。

准备数据

请参考箭头图的数据说明,下面绘制850HPa的风场图。

绘制箭头图

Matplotlib提供streamplot绘制流线图图。使用cartopy为数据添加投影,并绘制地图。

直接使用原始数据绘图速度太慢,最好对数据进行采样。默认设置流线太稀疏,设置density提高流线的密度。

import matplotlib.pyplot as plt
import cartopy.crs as ccrs

f = plt.figure(figsize=(10, 5))

ax = f.add_subplot(
    111,
    projection=ccrs.PlateCarree(central_longitude=150)
)

vector_crs = ccrs.PlateCarree()

ax.streamplot(
    u_data.lons[::20, ::20], u_data.lats[::20, ::20],
    u_data.grid_values[::20, ::20], v_data.grid_values[::20, ::20],
    transform=vector_crs,
    density=4,
    color=u_data.grid_values[::20, ::20],
    cmap='autumn'
)

ax.coastlines()

plt.show()

结果如下图所示。