티스토리 뷰

graphs

bgshade 이용하기

비조 2018. 9. 30. 20:26

백그라운드 쉐도우 그래프

타임시리즈 그래프를 그릴 때에는 특정 기간을 백그라운드에 표시할 필요가 있는 경우가 많다.

기재부, 한국은행, 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) )

그러면 아래와 같은 그래프를 얻을 수 있다.

link

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함