今天给大家分享使用 Stata 绘图展示各省市区县数字普惠金融指数的方法。
该数据的省级和城市级指数时间跨度为 2011-2023 年,县域指数时间跨度为 2014-2023 年。本课程将以 2023 年数据为例进行演示。
地图绘制细节较多,感兴趣的小伙伴可以学习之前的课程:
使用 Stata 绘制历年中国市级行政区划(小地图版本 + 长版):https://rstata.duanshu.com/#/brief/course/0e9d78633ae64fefa684d6aad89633bc
各省份数字化程度 读取和截取数据:
import excel using "北大数字普惠金融指数2011-2023.xlsx" , clear first sheet(省级) keep if year == 2023ren prov_name 省merge m :1 省 using chinaprov2021mini_db.dtakeep if _m == 3drop _m
nicecut.ado 是我编写的一个用于数据切分的小命令,把文件放在附件中即可使用。
nicecut 数字化程度一级指标, n (8) unit(" " ) format (%6.0f) replace 数字化程度一级指标 = -1000 if mi (数字化程度一级指标)grmap 数字化程度一级指标 using chinaprov2021mini_coord.dta, id(ID) osize(vvthin ...) ocolor(white ...) clmethod(custom) clbreaks(`r (cutpoints)') fcolor(gray "251 233 231" "255 204 188" "255 171 145" "255 138 101" "255 112 67" "255 87 34" "244 81 30" "230 74 25" ) graphr(margin(medium)) leg(order (`r (legorder)')) line (data(chinaprov2021mini_line_coord2.dta) by (group) size(vvthin *1 *0.5 *0.5 *0.5) pattern(solid ...) select(drop if inlist (group, 4, 7)) color(white black "0 85 170" black black )) polygon(data(polygon2) fcolor(black) osize(vvthin)) label (data(chinaprov2021mini_label2) x(X) y (Y) label (cname) length (20) size(*0.7)) ti("2023年各省份数字化程度" ) subti("数据整理 & 绘制:微信公众号 RStata" ) caption("数据来源:郭峰、王靖一、王芳、孔涛、张勋、程志云,《测度中国数字普惠金融发展: 指数编制与空间" "特征》,《经济学季刊》,2020年第19卷第4期,第1401-1418页。" , size(*0.8)) gr export "2023年各省份数字化程度.png" , replace width(4800)
其中颜色的选择可以使用我的小工具:https://tidyfriday.cn/colors/
各城市数字金融普惠指数 城市地图的绘制方法类似:
clear allimport excel using "北大数字普惠金融指数2011-2023.xlsx" , clear sheet(地级市) first ren id2018 市代码keep if year == 2023merge 1:1 市代码 using chinacity2021mini_db.dtakeep if _m == 3drop _mnicecut 总指数, n (8) unit(" " ) format ("%6.0f" ) replace 总指数 = -1000 if mi (总指数)grmap 总指数 using chinacity2021mini_coord.dta, id(ID) osize(vvthin ...) ocolor(white ...) clmethod(custom) clbreaks(`r (cutpoints)') fcolor(gray "251 233 231" "255 204 188" "255 171 145" "255 138 101" "255 112 67" "255 87 34" "244 81 30" "230 74 25" ) graphr(margin(medium)) leg(order (`r (legorder)')) line (data(chinaprov2021mini_line_coord2.dta) by (group) size(vvthin *1 *0.5 *0.5 *0.5) pattern(solid ...) select(drop if inlist (group, 4, 7)) color(gs20 black "0 85 170" black black )) polygon(data(polygon2) fcolor(black) osize(vvthin)) label (data(chinacity2021mini_label2) x(X) y (Y) label (cname) length (20) size(*0.8)) ti("2023年各城市数字金融普惠指数" ) subti("数据整理 & 绘制:微信公众号 RStata" ) caption("数据来源:郭峰、王靖一、王芳、孔涛、张勋、程志云,《测度中国数字普惠金融发展: 指数编制与空间" "特征》,《经济学季刊》,2020年第19卷第4期,第1401-1418页。" , size(*0.8)) gr export "2023年各城市数字金融普惠指数.png" , replace width(4800)
2023年各区县数字金融普惠覆盖广度 区县层面的不太好匹配,因为数据里面提供的区划代码是 2014 年的,而我这里提供的区划代码是 2021 年的(平台上也有 2014 年的地图数据)。不过针对这种匹配,可以考虑使用 reclink 进行模糊匹配,感觉效果还不错,然后剩下的实在匹配不上的可以再考虑逐个手动调整,不过这里我就不一一调整了:
import excel using "北大数字普惠金融指数2011-2023.xlsx" , clear first sheet(区县) keep if year == 2023gen 县 = county_name_year14gen 省 = prov_namegen mid = _nreclink 省 县 using chinacounty2021mini_db.dta, gen (score ) idm(mid) idusing(ID) minscore(0.6)order prov_name county_name_year14 U 县 score drop if mi (ID)gsort ID -score bysort ID: keep if _n == 1keep ID 覆盖广度一级指标merge m :1 ID using chinacounty2021mini_db.dtanicecut 覆盖广度一级指标, n (8) unit(" " ) format (%6.0f) replace 覆盖广度一级指标 = -1000 if mi (覆盖广度一级指标)grmap 覆盖广度一级指标 using chinacounty2021mini_coord.dta, id(ID) osize(vvthin ...) ocolor(white ...) clmethod(custom) clbreaks(`r (cutpoints)') fcolor(gray "251 233 231" "255 204 188" "255 171 145" "255 138 101" "255 112 67" "255 87 34" "244 81 30" "230 74 25" ) graphr(margin(medium)) leg(order (`r (legorder)')) line (data(chinaprov2021mini_line_coord2.dta) by (group) size(vvthin *1 *0.5 *0.5 *0.5) pattern(solid ...) select(drop if inlist (group, 4, 7)) color(gs20 black "0 85 170" black black )) polygon(data(polygon2) fcolor(black) osize(vvthin)) label (data(chinacounty2021mini_label2) x(X) y (Y) label (cname) length (20) size(*0.8)) ti("2023年各区县数字金融普惠覆盖广度" ) subti("数据整理 & 绘制:微信公众号 RStata" ) caption("数据来源:郭峰、王靖一、王芳、孔涛、张勋、程志云,《测度中国数字普惠金融发展: 指数编制与空间" "特征》,《经济学季刊》,2020年第19卷第4期,第1401-1418页。" , size(*0.8)) gr export "2023年各区县数字金融普惠覆盖广度.png" , replace width(4800)
关于模糊匹配,感兴趣的小伙伴也可以学习这个课程:
历年各省份数字普惠金融指数 如果想要绘制历年各省份数字普惠金融指数的变化趋势,可以考虑使用线图。不过如果绘制所有省份,整个图会显得非常杂乱,可以考虑强调较为关心的几个省市:
import excel using "北大数字普惠金融指数2011-2023.xlsx" , clear first sheet(省级) ren year 年份local cmd = "tw" levelsof prov_name, local (prov)foreach i in `prov' { local cmd = `"`cmd' (line 总指数 年份 if prov_name == "`i'", lc(gray%60) lw(*0.3))"' } `cmd' (line 总指数 年份 if prov_name == "北京市" , sort lc("251 207 53" ) lw(*1.2)) (line 总指数 年份 if prov_name == "河南省" , sort lc("237 76 28" ) lw(*1.2)) (line 总指数 年份 if prov_name == "澳门特别行政区" , sort lc("156 126 112" ) lw(*1.2)) (line 总指数 年份 if prov_name == "安徽省" , sort lc("90 194 241" ) lw(*1.2)) (line 总指数 年份 if prov_name == "香港特别行政区" , sort lc("17 119 108" ) lw(*1.2)), leg(order (33 "河南" 34 "澳门" 35 "安徽" 32 "北京" 36 "香港" ) pos(11) row(2) ring(0)) xti("" ) yti("数字普惠金融指数" ) ti("历年各省份数字普惠金融指数" ) xla(2011(1)2023) yla(,format (%6.0f)) caption("数据来源:郭峰、王靖一、王芳、孔涛、张勋、程志云,《测度中国数字普惠金融发展: 指数编制与空间" "特征》,《经济学季刊》,2020年第19卷第4期,第1401-1418页。" ) gr export "历年各省份数字普惠金融指数.png" , replace width(4800)
关于这种绘图技术,感兴趣的小伙伴也可以学习这个课程:
Stata 绘图中循环的使用、xtline 用法深入解析以及填充地图的绘制——以新冠疫情数据分析为例:https://rstata.duanshu.com/#/brief/course/7a125cbf4ccb4cccbb1495bcbfd107c3
点击这里跳转到 RStata 短书平台获取附件:使用 Stata 绘图展示各省市区县数字普惠金融指数
评论