数据地图系列5——Stata版(上)

今天要跟大家分享的是使用Stata语法制作数据地图

Stata语法制作数据地图,需要具备一点儿Stata语法基础,但是基于我们的目的是介绍地图的实现方式而非介绍软件操作,这里不再详细介绍Stata软件基础,感兴趣的同学可以自己查阅Stata工具书。

具体步骤会出现诸多代码,但是别担心,代码都不难理解,都是经过小魔方简化过的,复杂的引用及调用过程会通过手动操作提示。

步骤:(基于StataSE12.0)

在正式步骤之前需要从网上下载地图经纬度数据:

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

将下载后的名为china_map.zip压缩文件解压后存放在你的Stata安装目录中。(其实放在哪里无所谓,只要记住位置就行,一会代码需要引用位置,我的是放在D:/stata12/下)。

1、锁定引用目录位置:

cd "D:\chinamap" /*这样,你之后的引用都不用添加应用路径,可以省好多功夫*/

2、打开地图数据文件

use china_map,clear /*打开锁定文件目录下的数据文件*/

如果你想查看一下该文件的数据信息,可以使用list命令查看前n个记录信息。

list in 1/5 /*查看前五个记录*/

3、可以直接用数据作图了:(scatter语法)

scatter _Y _X /*先做一个最简单的中国地图轮廓,可能比较粗糙,因为没有控制参数格式*/

从图形上来看,确实挺粗糙的,那是因为我们没有使用参数控制散点的类型、大小、颜色。

下面我们要给这个命令施加关于颜色、类型、大小的参数。

scatter _Y _X , msize( vtiny ) msymbol(dot) color(red) #施加散点面积、类型、颜色后的地图。

下面我们开始介绍分省地图的绘制。

在我们下载的地图数据文件中,_ID中对应的序号编码是与中国34个升级行政单位一一对应的。

具体对应表在China_map文件夹的另一个文件China_label文件中,你可以打开查看编号与省份名称的对照表(下载打开就可以看到)。

scatter _Y _X if _ID==1, msize(tiny) msymbol(dot) color(green) #黑龙江地区轮廓

大家可以看出来编号1代表的是黑龙江。

scatter _Y _X if _ID==1, msize(tiny) msymbol(dot) recast(area) #黑龙江填充地图

以上命令与上一条的区别在于仅仅填充区域,因为没有添加参数,所以使用了系统默认的灰蓝色。

scatter _Y _X if _ID==1, msize(vtiny) msymbol(dot) recast(area) color(green) #指定填充颜色的填充区域。

当然有时候,我们需要同时对比好几个省份,那么使用Stata代码如何实现呢?其实很简单,使用||链接以上单条代码就可以了。参数可以自己设定。

假若我想画出来东三省的图形(东三省的代码:黑1,吉4,辽5)

scatter _Y _X if _ID==1, msize(vsmall) msymbol(dot) color(green) recast(area) || scatter _Y _X if _ID==4, msize(vsmall) msymbol(dot) color(gold) recast(area) || scatter _Y _X if _ID==5, msize(vsmall) msymbol(dot) color(blue) recast(area)

以上代码可以实现东三省的分省填充地图。

但是问题来了,如果我想做出来全国各省的分省填充地图,那么真的要复制34遍语法,并调整参数吗……

其实如果你不嫌烦,可是尝试一下,结果应该可以跑出来,但是……

对于小魔方这种懒人来说,肯定不会这么干,其实是有捷径的,不过我们数据处理和语法上会稍微复杂一点儿,今天算是让大家熟悉一下所用到的数据文件,下一篇正式介绍正宗的热力数据地图做法~

关于上述命令语句中的参数设置:

msize(vsmall) msymbol(dot) color(green)

以上参数分别代表散点面积(大小)、类型(形状)、颜色。

原文发布于微信公众号 - 数据小魔方(datamofang)

原文发表时间:2016-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WeTest质量开放平台团队的专栏

Android性能优化典范(1)

2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程...

12120
来自专栏木子昭的博客

往"某度文库"上传资源之前,请先做好这些...想到一句好玩的话:知道是你干的,只是懒得抓你!如果你喜欢python,喜欢故事,请点赞或关注我!您的支持是对作者最大的鼓励!

先讲个相关的故事:匿名黑客的"复仇行动" 2010年12月10日,黑客组织匿名者发布了一条消息,解释了他们发起最近一次代号为”复仇行动”的攻击的大致动机(Pr...

389130
来自专栏小特工作室

DataWindow.Net组件示例(全部开源)

1概述 1.1功能简介 Sybase公司的PowerBuilder开发工具,在以前VS工具没有成事以前,是相当风光的.微软都要与其合作,学习它Db方面的技术,才...

311100
来自专栏Java帮帮-微信公众号-技术文章全总结

学Java-Spring使用Quartz任务调度定时器

睁开眼看一看窗外的阳光,伸一个懒腰,拿起放在床一旁的水白开水,甜甜的味道,晃着尾巴东张西望的猫猫,在窗台上舞蹈。你向生活微笑,生活也向你微笑。 请你不要询问我...

35730
来自专栏张善友的专栏

在你的网站集成Wiki系统 WikiPlex

Wikiplex 是一种在 .NET Framework 上所开发,具有处理 Wiki 编辑宏功能的小型函式库组件,它提供了数种编辑样式的格式,以让使用者可以类...

22580
来自专栏黑泽君的专栏

Notepad2替代系统自带的记事本

事情是这样的,平时我经常把一些文字复制到记事本中编辑好了再复制到目标位置,可以在系统自带的记事本中替换删除一些内容,记事本小巧,占用很少的资源,我很喜欢;但今天...

46820
来自专栏魏琼东

一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示ORM对象与DataGridView的绑定技术-商品字典的另一个实现

回顾与说明     前面我们把“商品字典”、“商品入库”、“商品库存查询”、“商品入库查询”四个模块已经概括或者详细的演示了一个管理信息系统的典型应用场景,按照...

21750
来自专栏中国Android研究院

番外篇-Flutter初识三问

在Android中,您可以通过直接对view进行改变来更新视图。然而,在Flutter中Widget是不可变的,不会直接更新,而必须使用Widget的状态。

13830
来自专栏JavaEdge

JDK7新特性概览JSR292:支持动态类型语言(InvokeDynamic)G1 垃圾回收器(Garbage-First Collector)JSR334:小的语言改进(Project Coin)核

767100
来自专栏FreeBuf

我有两把枪:Powershell + HTA

我去前面探探路 众所周知,Powershell早已被集成到了windows的环境中,国外大牛玩得不亦乐乎,而国内圈子却很少听到讨论Powershell的,至少...

34180

扫码关注云+社区

领取腾讯云代金券