我在专栏(钱粮胡同 28 号)里写了一篇文章: 用 Excel 做出强大漂亮的数据地图 - 钱粮胡同 28 号 放在这里分享给大家。
这个方法的好处是:1)不累,快;2)不需要任何插件;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 里面的地图素材。
第四步:每个省现在对应的名字都没有,我们需要重新命名。简单的方法:鼠标点击选一个省,在左上角公式旁边的文本框里输入省的名字,如下图:
第五步:在 excel 里另建一个 worksheet, 按照下图来设计数据版面 :
渐变颜色可以自己选择,目前这个例子是从 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)在经济学领域是否有应用前景? - 钱粮胡同的回答
如果制作过程中遇到问题,请留言。
|