본문 바로가기

MySTATA/그래프 다루기

Gant chart ?

OECD 국가들의 고령사회에서 초고령사회 이행 기간 비교

# 특정 기간 비교를 위한 그래프

# 데이터 형태

 

# 변수설명 

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