*- 把 shp 文件转换成 dta 文件 local name = "jzmap" 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
这样就会得到四个文件:
jzmap_db.dta
jzmap_coord.dta
jzmap_line_coord.dta
jzmap_line_db.dta
其中前两个是底图的属性数据和坐标系数据,后面两个是线条的。
下面还需要对数据进行下调整。
首先是删除底图上的比例尺和指北针数据,因为这两个元素计划使用线条和多边形选项绘制:
use jzmap_db.dta, clear * 删除比例尺和指北针 dropifindex(县, "_") save jzmap_db.dta, replace
再创建比例尺和指北针的多边形数据:
use jzmap_coord.dta, clear *- 保留指北针和比例尺对应的观测值 keepif _ID > 306 gen value = 1 save jzmap_polyon, replace
再对线条进行分组:
*- 线条 use jzmap_line_db.dta, clear *- 分组 gen group = 1 replace group = 2 ifindex(市, "边界") replace group = 3 ifindex(省, "边界") replace group = 4 ifindex(省, "_") keep ID group ren ID _ID save temp, replace
use jzmap_line_coord.dta, clear mergem:1 _ID using temp drop _m save jzmap_line_coord, replace
这里我把线条分为四类:
区县边界;
城市边界;
省份边界;
比例尺和指北针的线条。
后面的代码中也会根据不同的线条类型使用不同的颜色和粗细。
统计 2021 年每个区县的年均 PM2.5 浓度:
import excel using "1998~2021年中国各区县PM2_5面板数据.xlsx", clear first keepifinlist(省, "长三角 41 省市省") & 年份 == 2021 drop 年份 sum min max sd renmean PM2_5 keep 县代码 PM2_5 save"PM2_5", replace
评论