本节提要:使用cartopy进行市县的色块填色、模仿geopandas绘制颜色图
一、利用cartopy进行市县的色块填色
其实geopandas在这方面比cartopy更加专业,由于是基于pandas的,所以在和表格类数据连接上的效果更好,不过cartopy也还能完成任务,虽然我想出的是个笨办法。
首先,还是通过meteoinfo或者GIS等软件读取图层属性:
然后在数据表中按照相同的市县顺序排列名称:
这一步是最麻烦的,但是一般市县也就十个以内,这一步工作是一劳永逸的。因为绘制业务地图的shp文件基本不会更改,所以排好序之后,每次制图只用更改excel(或者存储数据的文件)即可。
然后读入数据,绘制地图,关键代码如下:dangercolors=df['预警颜色']
shp=shpreader.Reader(shppath)
for city,color in zip(shp.geometries(),dangercolors):#zip——并行遍历函数
ax.add_geometries([city],proj,facecolor=color,edgecolor='k')
zip是py内置函数,可以直接调用,表示并行遍历。比如在这段程序中,for··· in ···逐个循环,在city循环的同时,color也同时循环,这样就可以实现绘制地图的同时给地图填色。
如果需要绘制新图,只需要修改excel中的数据即可:
二、使用cartopy绘制等级颜色图
前面的步骤和一中的一致:shppath=r'E:\shp\行政边界.shp'