# 한국 여성의 연령별 고용률을 OECD와 비교하고, OECD 내 국가간 순위
# dataset 개요
* 39개 국가 각각에 대해서 코드문 작성하면 길이도 길어지고 나중에 수정하기 어려움
* 한국과 OECD == line
* 다른 국가들 == scatter
levelsof lcode if ~inlist(lcode,35,40) , loc(ctrs)
loc clist = ""
foreach cc of loc ctrs {
loc clist = "`clist' (scatter empr myage if lcode==`cc', msize(vsmall) )"
}
* 한국의 OECD 내 순위 파악하고, 한국의 순위만 그래프에 넣기
by gender ages (empr) , sort: gen kn = _N - _n + 1
gen kpos = kn if lcode==35
* 문자로 된 x축(ages)을 숫자로 전환하고, 내용을 값라벨로 지정
// why? stata의 twoway를 이용하기위해.
gen myage = real(substr(ages,1,2))
replace ages = subinstr(ages,"to","~",.) + "세" if myage < 65
** x-축 라벨
lab def lblg 9999 "미정"
levelsof ages , loc(vl)
foreach mys of loc vl {
su myage if ages=="`mys'"
lab def lblg `r(mean)' "`mys'" , add
}
lab val myage lblg
** 완성된 코드문
gen myage = real(substr(ages,1,2))
replace ages = subinstr(ages,"to","~",.) + "세" if myage < 65
** x-축 라벨
lab def lblg 9999 "미정"
levelsof ages , loc(vl)
foreach mys of loc vl {
su myage if ages=="`mys'"
lab def lblg `r(mean)' "`mys'" , add
}
lab val myage lblg
save mydata.dta, replace
use mydata.dta, clear
keep if country=="OECD"
save mydata1.dta, replace
use mydata.dta, clear
drop if country=="OECD"
by gender ages (empr) , sort: gen kn = _N - _n + 1
gen kpos = kn if lcode==35
append using mydata1.dta
** 국가들 차트
levelsof lcode if ~inlist(lcode,35,40) , loc(ctrs)
loc clist = ""
foreach cc of loc ctrs {
loc clist = "`clist' (scatter empr myage if lcode==`cc', msize(vsmall) )"
}
foreach MyPerson in Allpersons Men Women {
#delimit ;
twoway
(line empr myage if lcode==40, lpattern(dash) lwidth(medthick) lcolor(green) ) /* OECD */
(connected empr myage if lcode==35, msymbol(none) mlabel(kpos) mlabsize(small) mlabcolor(red) mlabposition(4) lpattern(solid) lwidth(medthick) lcolor(red) ) /* 한국 */
`clist' /* 다른 모든 국가들 */ if gender=="`MyPerson'" ,
xlabel(#10, valuelabel ticks labsize(small))
ylabel(0(10)100,angle(0) labsize(small))
legend(order(1 "OECD" 2 "한국") position(6) ring(0) rows(1) size(medsmall))
graphregion(col(white) ) plotregion(margin(medium))
xtitle("") ytitle("") scheme(sj) ;
#delimit cr
graph export "$PnL_Anal\01_그래프\gr04_OECD_연령대비교_`MyPerson'.png", as(png) width(1200) replace
}
'MySTATA > 그래프 다루기' 카테고리의 다른 글
x축 변수가 특정 구간을 의미하는 경우 (0) | 2021.07.31 |
---|---|
많은 계열이 존재하는 그래프 쉽게 그리기 (0) | 2021.07.31 |
graph bar + dot (막대차트와 점차트 결합) (0) | 2021.07.29 |
그래프 그리기 09: legend(범례) 다루기 (0) | 2017.03.23 |
그래프 그리기 08: 값라벨을 하나의 관측치에만 붙이기 (0) | 2017.03.23 |