# 특정 기간 비교를 위한 그래프
# 데이터 형태
# 변수설명
icc 국가명(값라벨)
ccode 국가명(약어) 문자변수
soc_old07 고령화_도달연도(7%)
soc_old14 고령_도달연도(14%)
soc_old20 초고령_도달연도(20%)
dec_15to64 생산가능인구 감소연도
dec_type 감소유형(생산가능인구)
spd_14to20 기간(고령to초고령, 년)
spd_old_pab 기간(고령to생산인구감소, 년)
# 코드문: 왼쪽 그래프
gsort dec_type soc_old14
gen mycnt = _n
** 순위에 해당하는 국가의 이름으로 라벨링
lab def mylab 1000 "그냥"
count
forvalues ii = 1(1)`r(N)' {
loc mynum = mycnt[`ii']
loc mystr = ccode[`ii']
lab def mylab `mynum' "`mystr'", add
}
lab val mycnt mylab
replace dec_15to64 = . if dec_type==4
lab def dtype 1 "[유형:A]" 2 "[유형:B]" 4 "[유형:C]" , modify
#delimit ;
twoway
(scatter mycnt soc_old14 ,mlabsize(small) mlab(soc_old14) mlabgap(zero) mlabposition(9) msize(small) msymbol(circle))
(scatter mycnt soc_old20 ,mlabsize(small) mlab(soc_old20) mlabgap(zero) mlabposition(3) msize(small) msymbol(triangle))
(scatter mycnt dec_15to64,mlabsize(small) mlab(dec_15to64) mlabgap(zero) mlabposition(6) msize(medium) msymbol(pipe) mcolor(black)) ,
ylabel(#15, valuelabel glcolor(teal) glpattern(dot) glwidth(thin) labcolor(blue))
by(dec_type, rows(1) yrescale xrescale iyaxes ixaxes iylabel ixlabel note("") legend(position(12) span) )
legend(order(1 "고령사회 진입" 3 "생산가능인구 감소" 2 "초고령사회 진입" ) rows(1))
by(, graphregion(margin(zero)))
xtitle("") ytitle("") xlabel(none) scheme(white_brbg) plotregion(margin(large)) subtitle(, size(medsmall)) ;
#delimit cr
graph export "$PnL_Anal\01_그래프\gr303_OECD_생산가능인구변화.png", as(png) width(1200) replace
# 코드문: 오른쪽 그래프
gsort dec_type spd_14to20
gen mycnt = _n
** 순위에 해당하는 국가의 이름으로 라벨링
lab def mylab 1000 "그냥"
count
forvalues ii = 1(1)`r(N)' {
loc mynum = mycnt[`ii']
loc mystr = ccode[`ii']
lab def mylab `mynum' "`mystr'", add
}
lab val mycnt mylab
replace dec_15to64 = . if dec_type==4
lab def dtype 1 "[유형:A]" 2 "[유형:B]" 4 "[유형:C]" , modify
gen myzero = 0
** 연도 라벨 만들기
#delimit ;
twoway
(bar spd_14to20 mycnt , horizontal barw(0.01))
(scatter mycnt myzero ,mlabsize(small) mlab(soc_old14) mlabgap(zero) mlabposition(9) msymbol(pipe) mcolor(black) msize(large) mlabcolor(green))
(scatter mycnt spd_14to20 ,mlabsize(small) mlab(soc_old20) mlabgap(zero) mlabposition(3) msymbol(pipe) mcolor(black) msize(large) mlabcolor(dkgreen))
(scatter mycnt spd_old_pab,mlabsize(vsmall) mlab(dec_15to64) mlabgap(zero) mlabposition(6) msymbol(circle) mcolor(black) msize(small) mlabcolor(red) ) ,
ylabel(#15, valuelabel glcolor(teal) glpattern(dot) nogrid glwidth(thin) )
by(dec_type, rows(1) yrescale xrescale iyaxes ixaxes iylabel ixlabel note("") legend(position(6) ring(0) span))
legend(order(2 "고령사회 진입" 4 "생산가능인구 감소" 3 "초고령사회 진입" ) rows(1))
by(, graphregion(margin(zero)))
xtitle("") ytitle("") xlabel(none) scheme(white_viridis) plotregion(margin(large)) subtitle(, size(medsmall)) ;
#delimit cr
graph export "$PnL_Anal\01_그래프\gr303_OECD_생산가능인구변화_변형.png", as(png) width(1200) replace
'MySTATA > 그래프 다루기' 카테고리의 다른 글
선그래프 특정부분 강조 + 배경색 (0) | 2021.08.20 |
---|---|
OECD 비교: 경활률, 고용률, 실업률 그래프 자동화(?)하기 (0) | 2021.08.16 |
graph bar 정렬 문제 (0) | 2021.08.10 |
텍스트 + 음영 넣기 (38개 국가 고령화 비교) (0) | 2021.08.09 |
인구피라미드(population pyramid) 4. (0) | 2021.08.04 |