如何在 Matplotlib 中在地图上绘制时区
machine learningserver side programmingprogrammingmatplotlib更新于 2025/7/10 22:37:17
假设我们有一些需要处理实际时间的数据。要在地图上绘制时区,我们可以使用 Python 中的 ‘cartopy’ 或 ‘metPy’ 包。但是,我们可以使用以下命令在 Anaconda 环境中安装 ‘cartopy’ 包:
conda install -c conda-forge cartopy
或者
conda install -c conda-forge metpy
现在,让我们看看如何使用 Matplotlib 在地图上绘制时区。
示例
import numpy as np
import cartopy.crs as ccrs
import matplotlib.animation as animation
import matplotlib.pyplot as plt
#定义绘图大小和坐标轴
plt.figure(figsize=(10, 9))
ax = plt.axes(projection=ccrs.PlateCarree())
#应用来自cartopy包的自然地球颜色
ax.stock_img()
ax.coastlines(zorder=1)
#使用Cartopy的ShapelyFeature读取时区
shape_feature = ShapelyFeature(Reader('ne_10m_time_zones.shp').geometries(),
ccrs.PlateCarree(), edgecolor='black')
#在地图上绘制特征
ax.add_feature(shape_feature, alpha=0.4, zorder=5, lw=1)
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True,
linewidth=2, color="gray", alpha=0.5, linestyle="--")
# 使用网格线分隔时区
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True,
linewidth=2, color="black", alpha=0.5, linestyle="--")
# 关闭除底部之外的所有坐标轴
gl.xlabels_top = False
gl.ylabels_left = False
gl.ylabels_right = False
# 使用可勾选对象应用固定位置
gl.xlocator = mticker.FixedLocator(np.linspace(-180, 180, 25))
gl.xlabel_style = {'size': 10, 'color': 'blue'}
ax.set_title('Global Time Zones', size=15, color='g')
#显示图表
plt.show()
输出
运行上述代码片段将生成如下输出:


