创建色卡并使用geopandas进行绘制

背景

有一组比值数据,需要使用geopandas进行地图绘制,要求小于1的数据用冷色表示,大于1的数据用暖色表示;
但是数据并不对称,小于1的数据很少,大于1的数据很多;
均匀分组或使用内置算法分组后,使用内置色卡无法满足要求,会出现大于1的数据同样是冷色表示的错误图形。
为了解决这个问题,需要自定义色卡

Python中的色卡

关于内置色卡,可参考相关文章
关于色卡的使用,比较简单:

cmap = plt.get_cmap('RdBu_r') # 通过plt读入色卡

色卡一般是在[0,1]区间内连续的,输入一个小数,就会得到一个RGBA的颜色值,可以直接使用

新建色卡

色卡可以建立分段的、连续的等,具体怎么建立,参考相关文章

数据地图绘制

首先使用内置算法,例如FisherJenks对数据进行分组,得到分界值;
之后依据分界值,将数据映射到[0,1]的均匀区间,例如如果分为5组,则第一组数据映射为0,第二组映射为0.2……
根据设定的组数,定义色卡颜色数量,并建立色卡,例如还是5组:

cp = [cmap(_/8) for _ in range(len(bins)-1)]
cp = [cp[2]] + cp[4:]  # 在已有色卡中取色
cmap2 = ListedColormap(cp, N=len(cp))  # 建立色卡

最后将需要绘制的数据以及色卡传入geopandas.plot中即可得到结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值