摘要:去年春节期间百度发布了基于大数据的可视化产品春运迁徙地图(http://qianxi.baidu.com/),在中国地图上直观地看到各城市间的人流迁徙,经央视报道使用,一时惊艳。随后,又因直观地反映出东莞扫黄后的人流迁移态势再大热一把。这种炫酷的迁徙地图可视化形式,直观又形象,科技感十足,赢得哇声一片。
Excel能做这种地图吗当然不能,一个普通的办公软件和一个最新的大数据可视化产品是无法相比的。
不过,牛人的创意总是无限,老外Roberto Mensa在他参加chandoo的仪表盘设计作品中,用Excel实现了一种不错的迁徙地图形式(http://chandoo.org/wp/2014/06/12/state-migration-dashboard-contest-entries/#option_37)。
受其启发,本贴讲解用Excel制作基于中国地图的迁徙地图/流向地图的方法。下图是最后的目标样式。
作图思路
迁徙射线可用散点图绘制,迁徙数量可用气泡图绘制。由于气泡图不允许再组合其他图表类型,故分别做散点图和气泡图,其中散点图绘图区填充地图图片,气泡图全透明,然后两个图表叠加在一起,得到迁徙地图。
制作步骤:
1、首先做射线图
目标是绘制从当前所选省份到其他各省的射线。
在射线图工作表中,C、D 列为各省xy坐标数据,组织K、L列的xy数据,间隔重复所选省份和各省的xy坐标,这是关键点之一。公式为:
K列,x,=IF(MOD(J5,2),$G$6,INDEX($C$5:$C$40,J5/2))
L列,y,=IF(MOD(J5,2),$H$6,INDEX($D$5:$D$40,J5/2))
以K、L列的xy数据做散点图,即得到从所选省份到各省的射线状图表。
把绘图区填充地图图片,得到地图上的迁徙射线图表。
(注,xy数据本来准备使用实际经纬度作图,但发现很难调整散点和地图图片对齐,因此我还是使用了《用地图说话》书中的xy数据和地图图片)
在这个工作表里,我们用各省名称列表做一个透视表,插入一个切片器作为省份选择器, F6为当前所选省份名称, G6:H6据此提取当前省份的xy坐标。使用切片器切换省份时,射线的中心点会切换到所选省图形上。
2、再做气泡图
目标是当选择某个省份后,
若所选指标为“迁出”,则在各省图形上以实色气泡显示所选省迁出至各省的数量,并在所选省的图形上以虚线气泡显示其迁出至各省的汇总量。
若所选指标为“迁入”,则在各省图形上以虚线气泡显示各省迁至所选省的数量,并在所选省的图形上以实色气泡显示各省迁入所选省的汇总量。
因此,图表中会有4组气泡图,分别是迁入(虚线)、迁出(实色)、所选迁入(实色)、所选迁出(虚线)。
这里有点费脑,请慢慢琢磨。
最后,为了在切换省份时能统一气泡大小比例,增加一个隐藏的最大序列,以固定气泡大小标准。
在气泡图工作表中,先以(x,y,z1)做气泡图,为迁入序列,虚线圆圈。
再添加序列(x,y,z2),为迁出序列,实色气泡。
再添加序列(x,y,迁入),为所选迁入序列,实色气泡。
再添加序列(x,y,迁出),为所选迁出序列,虚线圆圈。
再添加序列(0,0,max),为最大序列,无填充色,隐藏。
气泡图做好后,设置图表区无填充色,透明。
在这个工作表里,我们对指标名称做透视表,插入切片器做选择器, P7为当前所选指标。
z1、z2的数据引用要同时考虑所选省和所选指标,使用到index、vlookup、match等函数。当切换省份和指标,相关数据相应变化。
3、组合图表
将射线图、气泡图,以及两个切片器,复制到新的工作表, 按例图布局图表和选择器,调整两图表的位置和大小,对齐,包括图表区和绘图区都对齐好。得到迁徙地图界面。
4、检查模型
切换省份和指标,检查确认数据引用、图表绘制的正确性,完成模型。
5、夜视风格
还可格式化出如下图的黑底发光夜视效果,具有科技感,接近百度迁徙地图的风格。如果你有兴趣,可以格式化到更炫更逼真。
其他变化
各省上可标具体数字,替换气泡,然后有以下格式化方法,
数字可根据数值大小设置不同字号。射线还可带上箭头(不过只有迁出时比较好,迁入时箭头都重叠了看不清)。还可把射线按数值大小设置为不同的粗细来可视化数值。以上都需要用到vba,有兴趣的读者可继续。
不过,这种地图对Excel还是有些勉为其难,而利用其他工具可能会更简单,推荐1:百度可视化开发工具Echarts,http://echarts.baidu.com/doc/example/map11.html,推荐2:大数据可视化工具tableau。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。