首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用 Python 绘制中国地图(下)

作者:张京

来源:https://segmentfault.com/a/1190000010900212

在上一篇文章《

用Python画一个中国地图

》中,我们简单描述了一下如何用 快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义。

上色

延续上一次的代码,我们这次还是只增加 行代码:

在展示结果之前,稍微解释一下。第 行 ,函数名看上去很诡异,是因为 里大量使用了缩写,这个 就是 的缩写,实际上就是要获得当前图形的座标轴。然后我们开始一个循环,把图形文件中各个省的多边形取出来,给它一个颜色,在这里我们统一放上红色,也就是 的缩写 ,然后把这个多边形放在我们图形的座标轴上,然后就得到了下图:

糟糕,怎么能少了中国台湾呢?在此郑重声明:中国台湾是中华人民共和国不可分割的领土!加入中国台湾的 文件,然后循环一下:

好了,这下祖国山河一片红,看上去正确多了。

接下来,你还可以把各个省的名字打出来看一下,具体代码就不解释了:

结果如下:

数据

接下来我们去国家统计局搞点 数据 ,第六次全国人口普查数据可以直接下载 文件,略作修改,导出成 文件,用我们上一课讲的方法,一句话读取进来:

直接输出,大概是下面这个样子:

渲染

好了,数据也有了,我们终于要开始做一些激动人心的事情了。我们希望根据各省人口的多少用深浅不同的颜色为各个省份染色,那么首先第一步,我们需要选择一个调色板,也就是色彩映射表 ,为此, 为你准备了 数不胜数的选择 ,我们随便选择一款国旗色红黄色调的吧:

然后我们把每个省的数据映射到 上:

最后,我们把各个省的颜色描在地图上:

哒哒,我们的全国人口数量热力图就完成了!可以看到河南、四川、广东、山东几个省的颜色比较深,说明这几个省的人口总数最多,而西藏颜色最浅,代表这里的人口总数最少。

这里只是简单地举了一个例子,你还可以把各省的人口总数除以面积,得到人口密度数据,你还可以把各省的经济总量画在图上,总之,有了这个入门的方法,一切就都简单了呢。

最后,附上完整的代码供大家参考。

题图:pexels,CC0 授权。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180607A0OK5500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券