百科问答小站 logo
百科问答小站 font logo



如何在 Excel 上做数据地图? 第1页

  

user avatar   drpmdb 网友的相关建议: 
      

更新:谢谢大家的支持。第五步颜色漏写了命名方法,已补充。如果还有问题可以参看本答案或我专栏文章的评论区,里面的讨论基本可以解决大部分人遇到的问题。再次抱歉,08年做的,这次直接放上知乎,漏了一步,确属粗心,记性差,检讨。

我在专栏(

钱粮胡同28号

)里写了一篇文章:

用Excel做出强大漂亮的数据地图 - 钱粮胡同28号

放在这里分享给大家。

这个方法的好处是:1)不累,快;2)不需要任何插件,走到哪儿只要有一个Excel就够;3)弹性强,可以利用同样的方法,很快做出各种各样的热感地图。

#正文走起

我个人比较喜欢从零DIY热感地图,学会了整套流程和方法,以后遇到任何类似问题都好解决。正好有很多知友在我的一些回答中问过我,我的那些热感地图怎么做出来的(我的那些回答请参考这个答案末尾的各种热感图图例)。借这个机会,我毅然决定,专写一篇文章来说说我的数据地图是怎么画的。

很简单,按照我的方法,六步你就可以画出自己的热感地图,不需要GIS软件,各种地图都适用。

前提:你要有Excel这个软件啊(否则搞毛),还要能上网啊(能看到这回答说明正在上网吧?)


第一步:需要一张普通的地图图片

这个很简单,网上到处都有。中国的省级地图,地级市地图,甚至县级地图都可以找到。这里两个小要求:1)尽量找张干净的图,干净指的是地图的边界清晰;2)svg格式的图(Scalable Vector Graphics)- 别慌,推荐你个下载svg格式地图模板的好去处Wikimedia Commons


在这个网站搜索China provinces,可以得到下面这些图(上百张),第一张图就很符合我们的要求:



第二步:打开下载的svg图。这里推荐个免费开源的软件:

Inkscape

。用这个软件打开svg的地图,然后另存为Enhanced Meta File(emf)格式的文件。

第三步:excel导入emf的文件,然后ungroup这个地图变成freeform的图形,如下图。


这样我们就得到了excel里面的地图素材。


第四步:每个省现在对应的名字都没有,我们需要重新命名。比较直观简单的方法:鼠标点击选一个省,在左上角公式旁边的文本框里输入省的名字,如下图:

补充1:评论里总结了一下,命名省份的时候如果出现问题可以选中一个省份,然后在selection pane里面找到对应的图形,重新命名就好。批量命名也是有方法的,但是略微复杂,有兴趣的话我可以放上来(对于比较了解Excel和vba的盆友,我就点一句:直接用Excel打开svg文件(对的,不是插入图片,是传统数据形式打开svg文件(类xml格式)),剩下就都明白了)。

第五步:在excel里另建一个worksheet(命名为"Data_Province"),按照下图来设计版面(如果不熟悉VBA,那么版面的行与列等格式一定按照下面的图片)

更新:F列每个颜色的单元格漏写了对应的命名,比如白色的单元格,将其命名为对应的J列的值(classpro0)

渐变颜色可以自己选择,目前这个例子是从0到5六种类别(颜色),根据你的研究需要(比如各省人均收入水平你按照高低分了10类,那就10种),随便改多少种都可以,唯一注意的就是命名的区域要跟着变再啰嗦一下:根据你自己的分类标准,筛选你的数据,将筛选后的分类结果(比如6种 0-5)对应到之前提到的类别中,这样也就对应好了颜色。

第六步:这些都做完了,在地图那页worksheet里面加个按钮,把下面这段VBA程序copy进去

       For i = 2 To 32 '这里是省的数量,2代表的是后面连接的数据表起始位是第二行,可以根据你自己的设计更改      Range("actRegProvince").Value = Range("Data_Province!D" & i).Value '按顺序选取数据表中省份          ActiveSheet.Shapes(Range("actRegProvince").Value).Select '激活对应的省份地图      Selection.ShapeRange.Fill.ForeColor.RGB = Range(Range("actRegCodeProvince")).Interior.Color '将数据表中省份对应的颜色类别赋值给对应的省份地图  Next i      

补充说明:Data_Province!D中Data_Province是第五步建的数据表(worksheet)的名字,D指的是省份名字所在的列(见上面那张截图)。根据自己的需要可以改成你喜欢的名字或位置。

第七步:这步不算了啊!就是六步~

点击按钮,享受成果,不谢!

把刚才的地图换成紫色渐变色,效果如下:



我过去的研究里用过的一些样图(ps: 数据原因,有些图未包含台湾)

地级市级别方言地图,请参考:文化对经济有着怎样的影响? - 钱粮胡同的回答

地级市层面经济集群图,请参考:中国是否真的需要均衡发展? - 钱粮胡同的回答

神经网络算法分类中国地级市,请参考:机器学习(machine learning)在经济学领域是否有应用前景? - 钱粮胡同的回答



同样方法制作县级地图


如果制作过程中遇到问题,请留言。


user avatar   RickyFine 网友的相关建议: 
      

Excel有个Power Map的功能,5分钟就能搞定一个简单的数据地图。

第一步:下载安装Power Map Preview for Excel 2013,下载完后可在工具栏的【插入】选项卡中找到Power Map。

第二步:准备数据。这里我准备了一组省市的销售额和利润数据,希望能够在地图上显示各个省的销售额分布,以及每个城市的销售/利润情况。

选择数据,启动Power Map并新建演示。

第三步:绘图

基于以上的目的,在这里我要建立两个图层,一个用于展示各省的销售额分布,另一个用于每个城市的销售/利润对比。

图层一:省销售额

区域选择省,地理和地图级别选择省

选择区域可视化的图表,数据展示销售额。

设置中可以修改颜色和色阶


图层二:城市销售利润

区域选择城市,地理和地图级别选择城市

选择簇状柱形图的图表,数据展示销售额和利润。

第四步:播放展示效果


如果是复杂的地图比如流向地图、动态地图需要写VBA开发,比如下图这张美国飓风的动效轨迹图


1、素材准备

① 一张带经纬线的美国·大西洋地图。因为公共服务提供的经纬度并不精确,各大地图工具都不带经纬度。当初翻遍了网络,在德克萨斯大学的地图图书馆NHC Blank Tracking Charts,找到了这张地图。

②从Hurricane & Tropical Cyclone Details上下载Irma飓风的移动路径数据,包括日期时间、经纬度、风力等。

2、处理数据

经纬度、风速、风压等去单位。

日期和时间要稍作处理转换成Excel便于处理的日期数据。

时间间隔前期基本上都是每6小时的记录一次数据,后期每3小时甚至每小时就记录一次,这里为了便于后期好处理,统一留下每6小时的数据。

3、绘制气泡图

将上面的地图插入到表格中,然后在上面绘制一张气泡图,气泡图的X轴数据就是经度数据,Y轴数据就是纬度数据,气泡大小取自风力大小的数值。

设置绘图区格式,根据经纬度坐标的读数来设置气泡图中坐标轴的最大值和最小值,并且使坐标间隔和地图上的经纬度间隔一致,比如这里间隔是5,这样可以保证气泡图绘制的数据点与地图中实际的经纬度相匹配。

拖拽移动图表绘图区的边框,使它与底层大西洋地图中的坐标轴线相互重合。然后隐去轴数据,边框什么的都设置“无”。

4、制作动效

【思路】

要想实现轨迹的动效,这里可以使用滑动条控件来控制时间,每滑动一次,时间就增加6小时。

滑动条所链接的单元格把数据传递给图表左侧的表格区域中,然后通过对时间点的查询得到相应的经纬度数据和风力风压数据。同时再由这个时间数据生成图表的两组数据源,由此构造形成整个控制链,并完成滑动条对图表的最终控制。

进一步,我想实现滑动条的自动控制,这里则需要通过VBA代码来实现,让图表自动播放。

【操作】

1、用VBA写两个宏,一个控制启动,一个控制停止。

2、绘制4个控件,分别代表启动、停止、循环、滑动条,指定上述宏。

3、滑动条控件格式指定左侧单元格,左侧单元格会记录滑动数据,上方data & time调用此单元格数据。

4、准备动态数据

为实现以上动态效果,其实在气泡图中准备了两组数据。一组显示当前时间点之前飓风所走过的所有路径点,另一组则标记当前时间点飓风所在位置。

这里需要用到LOOKUP函数,并调用data & time单元格数据。

第一组数据选取小于等于当前时间点的所有数据,并将其他数据点设为#N/A。

=IF($A9<=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())

第二组选取与当前时间相匹配的数据,其他数据也设为#N/A。这里,#N/A不会在图表中显示数据点。

=IF(A9=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())

5、气泡图绑定数据源

至此,就都搞定了,图表中的文本框则可以通过链接单元格,直接从单元格当中获取数据点的信息。

此外,这里除了气泡图,图表中还添加了一组柱形图来展示风力,数据绑定的操作形式和上面气泡图如出一辙。


最后,其实Excel做数据可视化地图还是比较麻烦的,相比于市面上有很多BI工具在数据地图上已经做得很厉害了。

推荐 @帆软 的回答:怎么在 Excel 上做数据地图?


公众号:数据分析不是个事儿

常年分享数据分析干货,不定期分享好用的职场技能工具。

回复“工具”获得33个好用工具下载地址,就包括Power Map


user avatar   jin-wei-37 网友的相关建议: 
      

这次舆论的重点在于警察到底是多久赶到的。

没拜码头,收保护费,打砸门面这种原因我们都知道,也不怕;

但是公权力私用或者黑白勾结这种事,就会让人非常害怕;

如果西安公权力真的黑白勾结,还睁眼说瞎话,那就需要处理整顿了。

我朝的治安也不是一直这么好的,人民也不是软弱无比的,60年代西安打的也很凶的。难不成西安各公司以后都要雇佣保安公司保护经营?

这次出警距离1公里,走路10分钟都到了,所以就坐等这次真实的出警时间是多少了。





  

相关话题

  如何根据地理和文化介绍美国的地图? 
  简单解释一下sparse autoencoder, sparse coding和restricted boltzmann machine的关系? 
  大数据是不是泡沫? 
  数据分析专家相比普通数分更核心的竞争力是什么? 
  面试应答有哪些话术和技巧? 
  excel怎样自动出计算结果? 
  如何简明易懂地说明数据包络线分析法(DEA)? 
  为什么要学习吴恩达的机器学习? 
  一个文章中95%的数据分析都是我做的,博导文章给我二作,这样的博导值得追随吗? 
  有哪些算法惊艳到了你? 

前一个讨论
西安还能改名为长安吗?
下一个讨论
如果刘备在某个时刻甘拜下风,向曹操称臣,能混到什么地位?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利