python--使用cnmaps绘制省界地图(快速上手,简单有效)

cnmaps是一个致力于让中国地图的获取和使用更丝滑的python扩展包。

当前版本具有以下几个主要功能:

  • 自带合规地图边界,数据源来自于高德等测绘机构,让你无需再额外寻找地图边界文件。

  • 支持地图边界之间的加减、交并集等常规操作,让你可以自由地组合想要的地图形状。

  • 具有易于使用的地图裁剪功能,且裁剪效果好,平滑无锯齿。

  • 与cartopy集成,可以自动转换地图边界的投影。
    python--使用cnmaps绘制省界地图(快速上手,简单有效)_第1张图片

这个库的优势在于,绘制省界相当的方便,随意指定省份,国家都可以实现绘制

  • 不足在于,windows下安装有点麻烦,需要指定相应的cartopy版本
  • 建议在Linux系统下进行安装

绘制结果如下图所示:

python--使用cnmaps绘制省界地图(快速上手,简单有效)_第2张图片
图中灰色阴影带蓝线的部分为江苏省省界

赋代码,代码中也给出了cartopy中自带的江苏省沿岸地区,与cnmaps进行了简单对比。

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from cnmaps import get_adm_maps, draw_maps
import numpy as np
from cartopy.mpl.ticker import LongitudeFormatter,LatitudeFormatter
import proplot as pplt

f, ax = pplt.subplots(ncols=1, nrows=1, proj='cyl',figsize=(6,6)) 

region=[120,130,25,35]

proj=ccrs.PlateCarree()

province=get_adm_maps(province='江苏省',record='first', only_polygon=True)
draw_maps(get_adm_maps(province='江苏省'),color='blue',linewidth=0.6)

ax.set_extent(region, crs = proj)
ax.set_xticks(np.arange(region[0],region[1]+1,3),crs=proj)
ax.set_yticks(np.arange(region[-2],region[-1]+1,3),crs=proj)
ax.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label=False))
ax.yaxis.set_major_formatter(LatitudeFormatter())
ax.add_geometries(province, crs=proj, edgecolor='grey', facecolor='whitesmoke',alpha=0.8)
ax.set_extent(province.get_extent(buffer=0.5))
ax.coastlines('10m',zorder=0)
ax.format(
        ltitle='(m/s)',
        # coast=True,
        labels=True,
        # grid =False,
              lonlim=(120, 130),
              latlines=2,
              lonlines=2,
              latlim=(25, 35),
                             )

ax.tick_params(which='major', 
                direction='out', 
                length=8,
                width=0.69, 
                pad=5, 
                labelsize=10,
                bottom=True, left=True)
plt.show()

下面给出这个库的安装、使用、说明文档:

  • https://github.com/cnmetlab/cnmaps
  • https://pypi.org/project/cnmaps/0.1.2/
  • https://cnmaps.readthedocs.io/zh_CN/latest/

你可能感兴趣的:(python,绘图,python,numpy,开发语言,cnmaps)