stata绘制地理分布图的spmap命令
前言
首先感谢连玉军老师的连享会,如果读者对spmap命令一点基础都没有的话,请首先阅读连享会的推文:
Stata:空间计量之用 spmap 绘制地图
本文主要是分享下我个人使用spmap绘制地图的一点点经验,主要是如何处理中国地图和当绘制城市层面的数据时如何让读者更清晰地识别城市。
如何同时清晰地展示省界和市界
反面例子
先上一个反面例子,下图中使用的数据是2005年城市级别的人口密度,白色区域表示数据缺失。可以看到这样的图片无法直观的区分大部分城市,对于读者是非常不友好的。我们可以通过加入省界的方式来区分省级区域,从而让读者比较好的识别具体城市位置。
这里使用的就是最基本的命令:
spmap 人口密度 using "city_map2",id(id)
其中city_map2就是地级市级别的coord文件。
进一步改善:加入省界
如下图所示,改善后的图片中地级市界限以灰色显示,省级界限以黑色显示(当然那些缺失数据的地区界限还需要进一步改善)。
该图使用的命令如下:
spmap 人口密度 using "citycoord.dta",id(id) ///
fcolor(Reds2) ocolor(Greys) ///
title("人口密度图") ///
polygon( data("provincecoord.dta") ocolor(black))
其中,fcolor表示颜色方案,ocolor表示地级市界限的颜色。
polygon()选项的具体解释请参照spmap命令的help文档。
直观来理解polygon就是在using已使用的图层中再加入另一个图层,我使用的provincecoord.dta文件就是只有省级行政区域的coord文件,而省界的颜色通过polygon中的ocolor(black)指定为黑色。
进一步改善:处理缺失数据区域
上图中还存在的一个问题就是缺失数据的区域界限也是黑色,和省界混在一起非常难看,如果我们想突出展示已有数据部分,可以把缺失数据的地级市隐去,只保留相应的省界。
为了达到这个目的,使用的命令如下:
spmap 人口密度 using "citycoord.dta" if 人口密度!=.,id(id) ///
fcolor(Reds2) ocolor(Greys) ///
title("人口密度图") ///
polygon( data("provincecoord.dta") ocolor(black))
通过if选项去掉那些缺失值地区,我们就可以只保留缺失数据地区的省级界限,可以看到新疆西藏青海和台湾省的地级市界限都不见了,看起来非常简洁清爽。
举一反三,有时候我们还可以通过if选项来指定只画部分地区的地理分布图。
如何不显示南海地区
我们通过加入省界的方式,可以很清晰的界定全国主要城市。但受限于地图比例因素,南海地区占据了较大的面积,而我们在研究中往往不太关注南海地区。如果我们把南海地区隐去,就可以放大全国其他区域,从而更清晰的展示我们的结果。(使用正确的地图,维护国家主权和领土完整人人有责,在此我们只是为了便于展示,请各位在使用不完整地图时清晰的备注说明!)
上文中给出的连享会推文中也介绍了类似的问题,但是连享会是通过if选项去掉的,对于我们同时使用两个coord文件来说会比较麻烦。因为if选项只能去掉第一个coord文件中的相应区域,省级图层则依然会显示南海地区。因此,我选择直接把coord文件中位于南海的三沙市坐标删掉。
由于在省级coord文件中三沙市是海南省的一个组成部分,不能通过id来直接识别,因此需要根据经纬度来删除。而三沙市作为我国最南端的地级市其实也很好识别,只有三沙市的维度是小于北纬17度的,只需打开省级coord文件通过
drop if _x <17
就可以很完美的隐去三沙市了。
为了规避平台审核,具体效果就不放图片展示了,大家可以自行尝试.
stata绘制地理分布图的spmap命令相关推荐
- echarts r 地图_用R与Stata绘制地图,让文稿shinly起来
有时候,我们在写文稿时,可能会涉及到数据的"统计制图"这一个环节.比如我们会遇到这样一批数据集,绘制全国31个省人均GDP的空间分布特征,以探索不同地区的经济发展水平差异. 这时候 ...
- 世界geojson_开源项目使用 Stata 绘制全世界所有国家以及部分国家的区划地图代码和数据...
使用 Stata 绘制全世界所有国家以及部分国家的区划地图代码和数据现已开源! 项目地址: GitHub:https://github.com/r-stata/stata-highmaps Gitee ...
- stata绘制中国地图-附地图链接
stata绘制中国地图,由于是在论文中使用,用的是黑白地图. 学习来自链接: https://www.bilibili.com/video/BV1qb4y127jZ/?spm_id_from=333. ...
- stata绘制meta分析漏斗图
meta分析中结果有些会产生偏倚,偏倚的识别方法有: 漏斗图法. Begg秩相关法. Egger 回归法.我们今天来介绍使用stata绘制meta分析漏斗图,虽然讲得有点迟了,但是还要讲一讲,也许有些 ...
- OpenCASCADE绘制测试线束:布尔运算命令之调试命令
OpenCASCADE绘制测试线束:布尔运算命令之调试命令 调试命令 bopds bopindex bopiterator bopinterf bopsp bopcb bopfin bopfon bo ...
- OpenCASCADE绘制测试线束:布尔运算命令之检查命令
OpenCASCADE绘制测试线束:布尔运算命令之检查命令 检查命令 bopcheck bopargcheck 检查命令 以下命令分析给定形状对布尔运算的有效性. bopcheck 句法: bopch ...
- OpenCASCADE绘制测试线束:布尔运算命令之设置选项的操作
OpenCASCADE绘制测试线束:布尔运算命令之设置选项的操作 设置选项的操作 并行处理方式 安全处理模式 模糊选项 粘合选项 bcheckinverted OBB使用 结果简化 绘制警告形状 设置 ...
- OpenCASCADE绘制测试线束:布尔运算命令之构建操作结果
OpenCASCADE绘制测试线束:布尔运算命令之构建操作结果 构建操作结果 布尔运算 General Fuse operation 拆分操作 BOP 的替代命令 通过 API 构建结果 构建操作结果 ...
- OpenCASCADE绘制测试线束:布尔运算命令之处理多个参数的通用命令
OpenCASCADE绘制测试线束:布尔运算命令之处理多个参数的通用命令 处理多个参数的通用命令 添加操作参数 参数的交集 处理多个参数的通用命令 基于通用熔断器操作的算法使用相同的命令来添加和清除参 ...
- OpenCASCADE绘制测试线束:布尔运算命令之两个操作数的布尔运算
OpenCASCADE绘制测试线束:布尔运算命令之两个操作数的布尔运算 两个操作数的布尔运算 bop, bopfuse, bopcut, boptuc, bopcommon, bopsection b ...
最新文章
- 敲的php代码怎么预览,php代码实现文件的预览
- BC:带你温习并解读《腾讯区块链方案白皮书》—区块链的兴起和未来之路
- cursor:hand与cursor:pointer的区别介绍
- rds基于什么开发_元王RDS--让H公司的10多年的设计经验重获新生!
- python提取文章中的中文数字
- proftpd java_Proftpd:编译安装
- 简评黑客利器——中国菜刀
- 用SLF4j/Logback打印日志-2
- centos 程序 mysql数据库文件位置_Centos mysql数据库存放位置更换
- sublime python调试_如何用sublime调试程序
- 【渝粤教育】国家开放大学2019年春季 0390-22T古代诗歌散文专题 参考试题
- Myeclipse中JSP页面快捷键注释失效解决方法
- 安装LaTeX中文字体 xGBKFonts
- 高薪设计师必修课 AE移动UI动效设计从入门到实战
- Python版蚊子大作战源代码,超解压的灭蚊小游戏,多种道具
- 超强PCB布线设计经验谈附原理图
- 野派,阡陌人生路,泪断愁肠,滚滚红尘中,情留心房
- 全球对冲基金及其投资策略解析
- 【学习】CEO绿色经历能否促进企业绿色创新
- 第三次作业--原型设计