透视Matplotlib核心功能和工具包 - Cartopy工具包

Cartopy是用于在Matplotlib上绘制地理地图的第三方工具包。Cartopy具有各种各样的功能,可以满足许多不同的用户群体。 在这里,我们将尝试介绍企业中通常使用的大多数功能。

地理地图以经度和纬度绘制,均以度为单位。 经度绘制在x轴上,并且从西向180度(-180)到东向180度(180)变化。 纬度绘制在y轴上,从向南90度(-90)到向北90度(90)变化。 地图上的位置由其经度和纬度值标识。

绘制基本地图特征

在此,我们将学习cartopy提供的用于绘制地图的基本功能。 将涵盖国家边界,沿海地区与陆地,陆地区域,海洋,河流和湖泊的边界等特征。 它还将介绍如何提供背景图像以实现更好的可视化效果。

导入所需库:

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

步骤细节:

  • 如下定义图和轴:
fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
  • 使用以下命令设置范围和背景图像:
ax.set_global()
ax.stock_img()
  • 添加所需的功能以在地图上进行绘制,如下所示:
ax.add_feature(cfeature.LAND, color='wheat')
ax.add_feature(cfeature.OCEAN, color='skyblue')
ax.add_feature(cfeature.COASTLINE, linestyle='-',lw=3)
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.add_feature(cfeature.LAKES, alpha=0.5, color='y')
ax.add_feature(cfeature.RIVERS, color='blue')
ax.tissot(facecolor='orange', alpha=0.4) # Tissot's indicatrix in cartography
  • 设置标题和标签,如下所示:
ax.set_title('Cartopy Map Features - Demo', size=20, weight='bold', color='g')

ax.text(0.5, -0.06, 'Longitude', va='bottom', ha='center', size=15, color='r',
       rotation='horizontal', rotation_mode='anchor', transform=ax.transAxes)
ax.text(-0.02, 0.55, 'Latitude', va='bottom', ha='center', size=15, color='b',
        rotation='vertical', rotation_mode='anchor', transform=ax.transAxes)
  • 使用以下命令在屏幕上显示地图:
plt.show()

分解代码

  • import cartopy.crs as ccrs 导入负责设置参考坐标系的包。
  • import cartopy.feature as cfeature导入用于绘制各种要素的包,例如陆地,海洋,河流和湖泊。
  • ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree()) 定义要在其上绘制地图的轴,如下所示:
    • (1,1,1)指定它是1 x 1网格中的第一个轴,这实际上意味着它是整个图形中的唯一图。
    • projection = ccrs.PlateCarree()指定用于绘制地图的坐标参考系统。 Cartopy提供了许多这样的投影(参考坐标系)。
    • 投影仅给出了地图的轮廓,因此根据我们要绘制的内容,我们可以添加各种预定义的要素,然后绘制我们感兴趣的数据。
  • ax.set_global() 指定坐标系统的限制由整个地球形成,这恰好是默认设置。 通过覆盖此全局设置,我们可以设置较小的限制来绘制感兴趣的特定区域。
  • ax.stock_img()在背景上绘制默认图像,以提供更好的可视化效果。 也可以用我们自己的图像覆盖它。
  • ax.add_feature(cfeature.LAND, color=‘wheat’) 使用小麦颜色设置绘制标记为土地的区域。
  • ax.add_feature(cfeature.OCEAN, color=‘skyblue’)使用“天蓝色”颜色设置绘制海洋。
  • ax.add_feature(cfeature.COASTLINE, linestyle=‘-’,lw=3)绘制沿沿海地区将土地和水分开的线,线宽为3点,虚线样式为虚线。
  • ax.add_feature(cfeature.BORDERS, linestyle=‘:’)用冒号的线条样式绘制国家边界。
  • ax.add_feature(cfeature.LAKES, alpha=0.5, color=‘y’)绘制具有黄色设置的湖泊。
  • ax.add_feature(cfeature.RIVERS, color=‘blue’) 用蓝色绘制河流。
  • ax.tissot(facecolor=‘orange’, alpha=0.4)绘制天梭的指标。
  • ax.set_title(‘Cartopy Map Features - Demo’, size=20, weight=‘bold’, color=‘g’)打印具有各种与文本相关的属性的标题。
  • ax.text()用于打印x和y标签。 常规的ax.set_xlabel和ax.set_ylabel命令在这里不起作用,因为将轴控件赋予了ax.gridlines()函数,该函数也没有用于绘制x和y轴标签的预定义方法。

运行上述代码后,您应该在屏幕上看到以下地图:

详情参阅 - 亚图跨际

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值