前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据地图系列6|Stata数据地图(下)

数据地图系列6|Stata数据地图(下)

作者头像
数据小磨坊
发布2018-04-10 17:10:18
7.1K0
发布2018-04-10 17:10:18
举报
文章被收录于专栏:数据小魔方数据小魔方

今天要跟大家分享的是数据地图系列6——Stata数据地图(下)

接着前一篇的节凑,这一篇会给大家介绍比较全面的Stata热力地图代码实现。

版本仍然是基于StataSE12.0。

首先需要下载软件外部命令:spmap #这一条命令是数据地图的专用命令。

ssc install spmap #下载并安装spmap命令。

下载数据地图经纬度数据文件:就是昨天用到的那个

http://fmwww.bc.edu/RePEc/bocode/c/china_map.zip

接下来是作图步骤:

1、锁定数据地图数据文件目录:

cd d:\chinamap\ #锁定数据文件目录

2、打开中国地图数据文件(标签版)

use china_label,clear

通过浏览数据文件信息我们发现,有些代码(省份)竟然出现重复值,这个其实也不奇怪,因为我国有些省份(特别是东南沿海)有好多海岛,这些海岛彼此并不相连,因而才会出现这种情况,给我们之后的数据组织带来诸多不便,不过没关系,这些问题小魔方都已经解决了。

我们先通过随机数函数生成一列正态随机数,作为我们要填充颜色的数据指标。

3、gen x=uniform() #生成一组正太随机数

4、设置变量数据格式

format x %9.3g #设置新变量X的整数与小数部分长度。

5、绘制地图

spmap x using "china_map.dta", id(id) #基本图形:配色默认黑灰色

在不指定填充颜色的情况下,软件会使用默认的一组灰色填充不同省份。

spmap x using "china_map.dta", id(id) fcolor(Reds)

#这句语法会使用一组不同色调的红色填充整个地图

关于填充颜色的问题,我曾经尝试了将近一个小时,挑了几套还不错的配色,这里把配色列表分享给大家。

Reds,Reds2,Greens, Greens2,Blues,Blues2,Oranges (自动分配深浅的颜色)

以上颜色替换fcolor()内的内容,就可以实现同色系填充,而且自动分配颜色深浅,效果很棒。

以下是用Greens\Blues\Granges颜色填充的效果。

spmap x using "china_map.dta", id(id) fcolor(Greens)

spmap x using "china_map.dta", id(id) fcolor(Blues)

spmap x using "china_map.dta", id(id) fcolor(Oranges)

当然上面是使用系统生成数据所做的,我们实际需要,肯定是要用自己的业务数据去做。

怎么把自己的数据与作图数据文件合并呢……

由于使用语法合并比较繁琐,容易出错,这里小魔方使用了一种比较迂回的方式,不过这样数据修改起来比较方便。

首先打开China_label数据文件后,将其数据全部复制——黏贴到新建的excel工作薄中,取名data_map。

同时将data_map中的B列(省份名称列)单独复制一份,粘贴在新建的数据指标工作薄中。(注意是新建工作薄(单独的excel文件)不是新建工作表)。

在data_map表的最右侧添加一个变量scale,使用vlookup函数从数据指标工作表表中将数据引用到data_map文件的scale列中。(相同省份(编号)数据相同)。

=VLOOKUP(B2,[指标数据.xlsx]Sheet1!$A$2:$B$35,2,FALSE)

为什么要这么大费周章呢,因为data_map表中有很多省份名称是重复的(原因已经介绍过了)。如果是在data_map表中直接输入业务数据,对于那些重复的省份,你需要重复输入很多次。

那为啥要把指标数据单独新建文件,然后使用vlookup函数引用。而不是直接在data_map工作薄中直接输入指标数据,然后引用到scale列中呢……

因为一会儿我要把data_map表另存为.CSV格式(excel数据导入Stata太复杂了),如果把指标数据也存放在data_map表中,最后的.csv文件导入会带有很多无效数据,影响数据组织。

完成之后,将data_map数据表另存为——.CSV格式。

下面就开始导入我们自己的业务数据:

cd d:\chinamap\ #锁定目录

insheet using data_map.csv,clear //读入全部变量

format x %9.3g #设置格式

spmap scale using "china_map.dta", id(id) fcolor(Reds) #作图

下次如果有新的业务指标数据的时候,可以直接复制到指标数据文件中,使用vlookup函数引用到data_map的scale变量里。

除了数据组织的过程之外,其他的过程都是跟之前的一样的。当然,如果你觉得我在excel中使用的数据组织技巧太复杂的话,也可以将指标数据直接复制到stata的China_label变量栏里,不过这样很容易出现乱码,而且还需要手动设置格式。

以上的作图语法,如果你把参数和路径都修改的跟你数据文件名、路径完全对应的话,完全没有必要一步一步的跑代码。全部复制黏贴回车,一下子地图就秒出了。你也可以把这段代码保存为命令格式(.do)以待今后使用。

当然这些技巧并非是我要讲解的重点,我只负责数据地图作图技巧,不负责软件使用和代码基础哈~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据小魔方 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档