*- 把 shp 文件转换成 dta 文件 local name = "gd_biscale4x4" shp2dta using `name'/`name', database(`name'_db) coordinates(`name'_coord) genid(ID2) gencentroids(centroids) replace
*- 绘图 use gd_biscale4x4_db.dta, clear drop ID2 order ID save gd_biscale4x4_db.dta, replace
再准备图例的标签位置数据:
import excel using "gd_biscale4x4/gd_biscale4x4_label.xlsx", clear first replacelabel = "年逆温天数 {&rarr}"iflabel == "v1 →" replacelabel = "年均PM2.5浓度 {&rarr}"iflabel == "v2 →" ren x X ren y Y renlabel cname save"gd_biscale4x4_label", replace
gdmap_with_ns 文件夹是我准备的带指北针和比例尺的广东省市级地图:
local name = "gdmap_with_ns" shp2dta using `name'/`name', database(`name'_db) coordinates(`name'_coord) genid(ID) gencentroids(centroids) replace shp2dta using `name'/`name'_line, database(`name'_line_db) coordinates(`name'_line_coord) genid(ID) gencentroids(centroids) replace
简单处理下:
use gdmap_with_ns_db.dta, clear *- 删除比例尺和指北针 dropifindex(市, "_") save gdmap_with_ns_db.dta, replace
use gdmap_with_ns_coord.dta, clear *- 保留指北针和比例尺对应的观测值 keepif _ID > 21 gen value = 1 save gd_polyon, replace
由于 Stata 绘制地图只支持添加一个面数据,所以需要把 gd_biscale4x4 合并到 gd_polyon.dta 数据上面:
use gd_polyon, clear genclass = "指北针和比例尺" append using gd_biscale4x4_coord replaceclass = "双变量图例"ifmissing(class)
*- 统计 2021 年每个城市的逆温天数和年均 PM2.5 浓度 import excel using "1998~2021年中国各城市PM2_5面板数据.xlsx", clear first keepif 省 == "广东省" & 年份 == 2021 drop 年份 sum min max sd renmean PM2_5 save"PM2_5", replace
import excel using "1980~2022年中国各城市每年逆温天数数据.xlsx", clear first keepif 省 == "广东省" & year == 2021 keep 市代码 days1 ren days1 逆温天数 merge 1:1 市代码 using PM2_5 drop _m
评论