快捷搜索: 王者荣耀 脱发

透视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) # Tissots 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轴标签的预定义方法。

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

详情参阅 -

经验分享 程序员 微信小程序 职场和发展