标注数字对应的文本_循环嵌套_全局暂元
1.清洗数据
cd $path_EPS_data
use temp_ybmy_nodest.dta,clear
gen hy3 = real(substr(string(hy4),1,3))
gen hy2 = real(substr(string(hy4),1,2))
gen lnv = ln(1+v)
gen lnq = ln(1+q)
foreach hy in hy4 hy3 hy2{
preserve
collapse (sum) v q , by(year `hy')
keep if year ==2007 | year == 2011 |year == 2015 | year == 2013
recode year (2007 = 1) (2011 = 2) (2013 = 3) (2015 = 4)
2.生成增长率
reshape wide v q ,i(`hy') j(year)
foreach v in v q{
gen delta_`v'1_`v'2 = (`v'2 - `v'1)/`v'1 // 07-11 ~ delta_v1_v2
gen delta_`v'2_`v'4 = (`v'4 - `v'2)/`v'2 // 11-15 ~ delta_v2_v4
gen delta_`v'3_`v'4 = (`v'4 - `v'3)/`v'3 // 13-15 ~ delta_v3_v4
label var delta_`v'1_`v'2 "07-11增长率"
label var delta_`v'2_`v'4 "11-15增长率"
label var delta_`v'3_`v'4 "13-15增长率"
}
3.确定x/y axis 画图范围
foreach v in delta_v1_v2 delta_v2_v4 delta_v3_v4{
winsor2 `v',cut(5 95) trim replace
su `v',d
gen min_`v' = r(min)
gen max_`v' = r(max)
}
4.确定中位数
foreach v in delta_v1_v2 delta_v2_v4 delta_v3_v4{
su `v',d
gen med_`v' = r(p50)
replace med_`v' = 1 if `v' >= med_`v'
replace med_`v' = 0 if med_`v' != 1
}
5.画图
foreach y in delta_v3_v4 delta_v2_v4 {
cap global x delta_v1_v2
cap global y `y'
cap drop low* up*
cap egen lower = rmin(min_$x min_$y)
cap gen lower2 = floor(lower * 100)*10^(-2)
cap egen upper = rmax(max_$x max_$y)
cap gen upper2 = ceil(upper * 100)*10^(-2)
cap su lower2,d
cap global lower2 = min(r(mean),-.05)
cap su upper2,d
cap global upper2 = r(mean)
tw (scatter $y $x if $x >= lower2 & $x <= $upper2 ///
& $y >= $lower2 & $y <= $upper2 ///
& med_$x == 1 & med_$y == 1 , ///
mlabel(`hy') mlc(black) mlabc(black) ms(x) mlabs(tiny)) ///
(scatter $y $x if $x >= $lower2 & $x <= $upper2 ///
& $y >= $lower2 & $y <= $upper2 ///
& med_$x == 1 & med_$y == 0 , ///
mlabel(`hy') mlc(black) mlabc(blue) ms(x) mlabs(tiny)) ///
(scatter $y $x if $x >= $lower2 & $x <= $upper2 ///
& $y >= $lower2 & $y <= $upper2 ///
& med_$x == 0 & med_$y == 1 , ///
mlabel(`hy') mlc(black) mlabc(red) ms(x) mlabs(tiny)) ///
(scatter $y $x if $x >= $lower2 & $x <= $upper2 ///
& $y >= $lower2 & $y <= $upper2 ///
& med_$x == 0 & med_$y == 0 , ///
mlabel(`hy') mlc(black) mlabc(green) ms(x) mlabs(tiny)) ///
(fun y=x,range($lower2 $upper2)) , ///
xlab($lower2(0.5)$upper2) ylab($lower2(0.5)$upper2) ///
graphregion(color(white)) ///
xline(0,lp(dash) lc(gs10)) ///
yline(0,lp(dash) lc(gs10)) ///
legend(ring(0) pos(5) order(5 "45°线")) ///
ytitle($y) ///
xtitle("07-11时段的增速")
graph save "Graph" "$path_output\change_in_growth_`y'_`hy'.gph" ,replace
graph export "$path_output\change_in_growth_`y'_`hy'.png", as(png) name("Graph") replace
}
restore
}