티스토리 뷰
백그라운드 쉐도우 그래프
타임시리즈 그래프를 그릴 때에는 특정 기간을 백그라운드에 표시할 필요가 있는 경우가 많다.
기재부, 한국은행, KDI 등에서도 그러한 그래프를 다양하게 많이 사용한다.
특정 사건이 발생한 시기를 표시할 때 사용된다. 예컨대, 경기침체 시기의 경제성장률을 표시하시할 때
백그라운드로 해당 기간을 표시하게 된다.
통상적으로는, 엑셀에서 필요한 기간 동안 막대 그래프로 다른 축을 하나 추가하는 방식으로 하는 것이 보통이다.
Stata에서는 다양한 방식으로 그릴 수 있는데 최근에 발표된 bgshade를 이용하면 비교적 편하게 작업을 할 수 있다.
필요한 경우 다음과 같이 bgshade 를 설치하자.
ssc install bgshade, replace
다음과 같이 자료를 읽어들이자.
. sysuse gnp96, clear
그리고 다음과 같이 자료 포맷을 쿼터로 정해주자. 그리고 tsset 을 이용해서 시계열 변수임을 선언하자.
. format date %tq
. tsset date, quarterly
time variable: date, 1967q1 to 2002q2
delta: 1 quarter
다음으로 할 일은 백그라운드 색깔을 칠할 기간을 특정해주는 것이다. 기본적으로 색깔을 칠할 기간에 대한 더미변수를 만들어주면 된다.
. gen t1 = tin(1980q1, 1982q4)
. gen t2 = tin(1991q1, 1994q4)
이번에는 성장률 변수를 만들어보자.
. gen growth = 4*(ln(gnp96)-ln(L.gnp96))*100
(1 missing value generated)
다음으로는 bgshade 명령어를 이용해서 다음과 같은 그림을 그릴 수 있다.
. bgshade date if date >= yq(1970,1), legend shaders(t1 t2) sstyle(lcolor(gs13 gs13) lpattern(l)) ///
> twoway(line growth date if date >= yq(1970,1), title("annual growth rate(%)") lpattern(solid) lcolor(blue%50) scheme(scientific) ///
> legend( order(3 "gnp annual growth" 1 "periods") ring(0) pos(7)) yla(-10(2)14) )
그러면 아래와 같은 그래프를 얻을 수 있다.
tsline는 안되는 것이 좀 아쉽긴 하다.
'graphs' 카테고리의 다른 글
히스토그램 그리기 (0) | 2018.10.03 |
---|---|
binscatter 로 산포도 그리기 (0) | 2018.10.01 |
radar 그래프 (0) | 2018.09.29 |
penalized-spline regression fitting (0) | 2018.09.29 |
2변수의 밀도함수 추정과 heat map (0) | 2018.09.27 |