干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

当我开始建造Vincent时, 我的一个目的就是使得地图的建造尽可能合理化. 有一些很棒的python地图库-参见Basemap 和 Kartograph能让地图更有意思. 我强烈推荐这两个工具, 因为他们都很好用而且很强大. 我想有更简单一些的工具,能依靠Vega的力量并且允许简单的语法点到geoJSON文件,详细描述一个投影和大小/比列,最后输出地图.

例如, 将地图数据分层来建立更复杂的地图:

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

加之,等值线地图需绑定Pandas数据,需要数据列直接映射到地图要素.假设有一个从geoJSON到列数据的1:1映射,它的语法是非常简单的:

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

我们的数据并非没有争议无需改造——用户需要确保 geoJSON 键与熊猫数据框架之间具有1:1的映射。下面就是之前实例所需的简明的数据框架映射:我们的国家信息是一个列有FIPS 码、国家名称、以及经济信息(列名省略)的 CSV 文件:

干货 | 20 行 Python 代码创建可视化地图

在 geoJSON 中,我们的国家形状是以 FIPS 码为id 的(感谢 fork 自 Trifacta 的相关信息)。为了简便,实际形状已经做了简略,在示例数据可以找到完整的数据集:

干货 | 20 行 Python 代码创建可视化地图

我们需要匹配 FIPS 码,确保匹配正确,否则 Vega 无法正确的压缩数据:

干货 | 20 行 Python 代码创建可视化地图

现在,我们可以快速生成不同的等值线:

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

这只能告诉我们 LA 和 King 面积非常大,人口非常稠密。让我们再看看中等家庭收入:

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

明显很多高收入区域在东海岸或是其他高密度区域。我敢打赌,在城市层级这将更加有趣,但这需要等以后发布的版本。让我们快速重置地图,再看看国家失业率:

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

地图即是我的激情所在——我希望 Vincent 能够更强,包含轻松的添加点、标记及其它的能力。

作者:开源中国

来源:http://www.oschina.net/translate/python-maps-chloropleth?cmp



————广告时间————

马哥教育2017年Python自动化运维开发实战班,马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才

干货 | 20 行 Python 代码创建可视化地图干货 | 20 行 Python 代码创建可视化地图扫描二维码和更多小伙伴组团学习干货 | 20 行 Python 代码创建可视化地图干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

干货 | 20 行 Python 代码创建可视化地图

原创文章,作者:h,如若转载,请注明出处:http://www.178linux.com/86470

(1)
hh
上一篇 2017-09-08 15:13
下一篇 2017-09-08 17:30

相关推荐

  • 自制Linux系统

                          自制Linux系统 1、环境准备:         在centos6上添加一块新硬盘,并分区格式化。 &n…

    系统运维 2016-09-21
  • 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@unclez ~]#  grep -E "^[[:space:]]+.*" /boot/grub/grub.cong 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟…

    Linux干货 2016-12-31
  • 内核编译之增加ntfs文件系统

    内核编译 内核编译 单内核体系设计,但充分借鉴了微内核设计体系的优点,为内核引入模块化机制。 内核组成部分:     Kernel,内核核心,一般为bzImage,通常在/boot目录下,名称为vmlinuz-WERSION- RELEASE;     Kernel object…

    Linux干货 2016-09-13
  • gitlib环境部署

         GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松…

    2016-05-19
  • DHCP使用帮助

    bootp 想要通过tcp/ip模型进行网络通信需要有一个ip地址,IP地址是属于操作系统的,所以没有操作系统就没有ip 为了解决这种问题,有一种网卡可以不需要操作系统就能获取到ip bootp:只有第一次是动态获得,以后ip地址就是和mac地址绑定的,不能分配给其他主机 DHCP:DHCP是bootp的改进版,主要引入了租约的定义 DHCP也可以根据mac…

    Linux干货 2016-11-11
  • Ansible的常用模块

    command模块: 目的:在指定节点上运行hostname命令 命令:ansible 192.168.1.16 -m command  ‘hostname’copy模块:目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 192.168.1.16 -m copy -a ‘src=/roo…

    Linux干货 2017-10-31

评论列表(1条)

  • 阿张
    阿张 2017-09-09 08:42

    这个技术真心很牛啊