stata中计算公式命令_Stata:空间计量之用 spmap 绘制地图

本文介绍了如何在Stata中使用spmap命令绘制地图,包括下载和转换地图数据、绘制Choropleth和Proportional symbol地图,并提供了相关命令的详细语法和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bb1e7c4ac735111786ae9cd2604119dd.png
作者:万莉 (北京航空航天大学)
Stata 连享会: 知乎 | 简书 | 码云 连享会最新专题直播

673d4e6f8cb82830122a09234b17926d.png

引言

在绘制地图时,大家可能会推荐 ArcGIS 等专业软件。然而,对于习惯使用 Stata 的用户而言,若数据管理、数据分析、绘图等各方面都能在 Stata 实现,那就太棒了!Stata 的绘图功能日益强大,能满足大多数可视化需求。现在,Stata 能通过外部命令 spmap 绘制出各式各样的地图,如下图所示:

1cb62ef991842b690b600ff0b4cb8977.png

本文将详细介绍如何使用 spmap 命令绘制各种常用的地图。

1. 命令简介

外部命令 spmap (Pisati, 2007) 的前身为 tmap (Pisati, 2004)。Stata 15 版本的官方命令 grmap 改编自 spmap。相较 spmapgrmap 改动不大,但只用于空间数据 (spset data)。

由于篇幅有限,本推文只介绍 spmap。由于其命令的选项 (options) 较复杂,我们先熟悉绘制地图的一般步骤;再进一步了解其语法结构。

1.1 绘制步骤

参考 「Stata 官网提供的 FAQ」,绘制地图的一般步骤如下:

第一步:下载三个外部命令:spmap | shp2dta | mif2dta

*-Step 1: Obtain and install the spmap, shp2dta, and mif2dta commands
// 画地图的外部命令
. ssc install spmap, replace 

// 将外部的 dbf 文件和 shp 文件转化为 dta 文件  
. ssc install shp2dta, replace  

// 将外部的 mif 文件和 mid 文件转化为 dta 文件
. ssc install mif2dta, replace 

* 获得帮助文件
help spmap 
help shp2dta
help mif2dta

第二步:下载描绘地图的矢量数据文件

绘制地图时,一般需要两份数据:标签数据 (比如 ID 变量) 和地理坐标数据。对于后者,则有两种常用的矢量数据存储格式: ESRI shapefile (简称 shapefile)或 MapInfo Interchange Format。具体说明如下:

  • ESRI shapefile 是美国环境系统研究所公司 (ESRI) 开发的一种空间数据开放格式,用于存储地理要素的位置、形状和属性。Shapefile 通常有一个 .zip 压缩文件,包含多个文件,其中必须包括以下三个基本文件:
  • 主文件 (*.shp): 存储几何要素的的空间信息,也就是 XY 坐标。
  • 索引文件 (*.shx): 存储有关 *.shp 存储的索引信息。它记录了在 *.shp 中,空间数据是如何存储的,XY 坐标的输入点在哪里,有多少 XY 坐标对等信息。
  • 表文件 (*.dbf): 存储地理数据的属性信息的 dBase 表。

用 Stata 绘制地图时,我们只需要 shape (*.shp)dBase (*.dbf) 两个文件。 shp2dta 命令能帮助我们分别将这两个文件转成 Stata 专属的 .dta 格式的数据。

  • MapInfo Interchange Format 是美国公司 MapInfo 开发的通用数据交换格式。这种格式是 ASCⅡ 码,可以编辑,易于生成,且可以工作在 MapInfo 支持的所有平台上。它将 MapInfo 数据保存于以下两个文件:
  • *.mif 文件: 存储图形数据,可理解为 XY 坐标。
  • *.mid 文件: 存储文本(属性)数据。

用 Stata 绘制地图时, mif2dta 命令能帮助我们分别将 *.mif*.mid 文件转成 Stata 专属的 .dta 格式的数据。

Stata 范例:
Shapefiles 包含多种类型(比如,Polygon, Point, Polyine。)在绘制地图底图时,推荐使用 polygon shapefile。 一般地,ESRI shapefile 比 MapInfo Interchange Format 更易获得。我们可以在搜索引擎上获得 shapefiles。
本例子中,我们使用美国地图 shapefile 数据。获得 shapefile 文件步骤如下: - 在 谷歌 或 雅虎 上搜 "United States shapefile" - 在搜索结果中找到 https://www. weather.gov/gis/USState s - 下载 s_11au16.zip (注:文件名会随数据的更新而改变。) - 解压文件,我们只需两个文件: s_11au16.shps_11au16.dbf
更详细的操作介绍见下图:

37caa99825782ad88456946d0bab2718.png

第三步:将地图的矢量数据文件转成 Stata 格式数据文件

利用命令 shp2dtamif2dta 将地图的矢量数据文件转成 Stata .dta 格式的数据。 检查 .dbf (.mid) 文件经转换后对应的 .dta 数据。该数据为标签数据,包含 ID 变量(命名为 id),不同 id 对应不同区域划分。我们应该了解地图矢量数据的提供者是如何划分区域的。比如,在一份数据中, id=1 对应 Alaska,id=2 对应 Alabama;而在另一份数据中,id=1 对应 Albania,id=2 对应 Argentina。

*-Step 3: Translate the files
* note:将数据放在当前工作路径
shp2dta using s_11au16, database(usdb) ///
        coordinates(uscoord) genid(id)
关于代码的一些说明: - database(usdb) 将 database file 转换成 usdb.dta; - coordinates(uscoord) 将 coordinate file 转换成 uscoord.dta; - genid(id) 将 usdb.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值