*- 把 shp 文件转换成 dta 文件 local name = "hn_biscale4x4" shp2dta using `name'/`name', database(`name'_db) coordinates(`name'_coord) genid(ID2) gencentroids(centroids) replace
*- 绘图 use hn_biscale4x4_db.dta, clear drop ID2 order ID save hn_biscale4x4_db.dta, replace
再准备图例的标签位置数据:
import excel using "hn_biscale4x4/hn_biscale4x4_label.xlsx", clear first replacelabel = "年逆温天数 {&rarr}"in 1 replacelabel = "年均PM2.5浓度 {&rarr}"in 2 ren x X ren y Y renlabel cname save"hn_biscale4x4_label", replace
hnmap_with_ns 文件夹是我准备的带指北针和比例尺的湖南省县级地图:
local name = "hnmap_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 hnmap_with_ns_db.dta, clear *- 删除比例尺和指北针 dropifindex(县, "_") save hnmap_with_ns_db.dta, replace
use hnmap_with_ns_coord.dta, clear *- 保留指北针和比例尺对应的观测值 keepif _ID > 122 gen value = 1 save hn_polyon, replace
由于 Stata 绘制地图只支持添加一个面数据,所以需要把 hn_biscale4x4 合并到 hn_polyon.dta 数据上面:
use hn_polyon, clear genclass = "指北针和比例尺" append using hn_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
评论