라벨이 그래프인 게시물 표시

그래프 그리기 08:= 값라벨을 하나의 관측치에만 붙이기

이미지
// 단독직입적으로 시작합니다.... // 다음과 같은 자료가 있습니다. // 21개 등급(grd)별로 그 순위(gwon)가 있습니다. 여기서 보여지는 것은 한 개인만을 보여주고 있지만, 예를 들어 여러 명의 각 등급별 순위가 있는 그래프를 그리기 위한 것이 오늘 소개하는 내용입니다. 사실, 이러한 경우 범례(legend)를 이용하여 구분하는 것은 아래와 같이 매우 복잡합니다. 무슨 지하철 노선도 같네요...그게 아닌데 ㅠㅠ 그래서 각 관측치별로 값을 라벨로 넣어서 구분하는 방법도 있습니다... twoway  (connected gwon grd if model == "BASE" , sort mlabel(model) mlabp(12))  하지만, 이것도 여러 개를 그리면 너무 복잡해서리~~   twoway (connected gwon grd if model == "BASE" , sort mlabel(model) mlabp(12)) (connected gwon grd if model == "S1-21", sort mlabel(model)) ........ 그런데 이렇게 그리면 어떤가요?!!^.^  이렇게 하기 위해선 하나의 새로운 변수를 만듭니다. 이때, 21개 등급에 해당하는 관측치에만 값을 넣는게 핵심입니다. gen mymod = model if grd == 21 보시는 바와 같이, grd가 21인 경우에만 그래프의 라벨로 사용하고 싶은 값을 넣으면 됩니다.   그런다음, 다음과 같이 라벨로 쓸 변수로 새롭게 만든 변수를 이용하면 되죠^^ twoway   (connected gwon grd if model == "BASE", mlabel( mymod )  mlabp(3) sort)  (connected gwon grd if model == "S1-21", mlabel( ...

그래프 그리기 04:= 특정 시기에 음영 넣기:= OECD 국가들의 총조세와 사회지출이 GDP에서 차지하는 비중(1980~2012)

이미지
// 간혹, 아니 어찌보면 자주 그래프에 특정 시기를 음영으로 넣고 싶을 때가 있죠!! // 예를 들어, 각 정권 기간 동안 거시변수가 어떤 추이를 비교하거나, 특정 사건 전후로 달라지는 추이를 비교하는 경우...  // 오늘의 사례는 "2007년 금융위기 이후 OECD 국가들의 총조세와 사회지출이 GDP에서 차지하는 비중(1980~2012)"으로서, 2007년 금융위기 이후 기간을 음영으로 표시하는 것입니다.  // 먼저, 자료에 대한 간단한 설명을 하자면, // 기간은 1980~2012년 // 변수: 1) ser (복지지출 비중),  2) tax (총조세 비중) , 3) yr  (연도) , 4) country (국가명 및 OECD 평균) // 보통 두 시계열 변수에 대한 선그래프는 다음과 같이 하면 되죠... twoway     /// (line ser yr if country == "OECD - Total",lpattern(solid))  /// (line tax yr if country == "OECD - Total",lpattern(dash)) // 자 이제 여기에 음영을 넣어볼까요.... twoway /// (function y=26.9, range(2007 2013) recast(area) color(gs13) base(15.5) ) // 이게 무슨 말인가 하면, y=26.9 라는 직선을 그려라... 이때, x축의 범위는 2007~2013이고, 그래프는 영역형태이며  recast(area) ,  색깔은 회색이고, 최소값은 15.5이다. // 당연히 그리려는 그래프마다 바꿔줘야 하는 것은  26.9와 15.5라는 숫자이고, 기간 연도 역시 바꾸면 되겠죠... // 그런데 문제는 이렇게 음영을 그리면 회색영역이 생뚱맞게 있다는 점...그래서 회색영역에 눈금을 알 수 있는 선(grid)을 그어줘야 품질좋은 ...

그래프 그리기 03:= 여러 집단별로 동일한 그래프를 반복해서 그리기

이미지
/* 원본 데이터는 A열의 대분류(종사상지위,근로형태,산업 등)와 B열의 중분류가 각 해당 대분류별로 구성된 항목별로 2001년~2012년까지의 값이 들어있는 자료이다(제공:= 신우진). */ // 이런 자료를 갖고서 어떤 그래프를 그려야 할까?^.^ // 좀 더 구체적으로 말하면, A열의 분류(근로형태별, 산업별, 종사상지위별 등)로 각각의 그래프를 B의 중분류 항목을 기준으로 연도별 추이를 그려야 하는 것이 오늘의 작업... // 오늘의 작업을 정리하면,  1. A열의 항목별로 별도의 그래프를 그려야 한다. 다만, 그래프의 형식은 다행히도 동일하다.  2. 각 그래프는 B의 항목을 기준으로 그린다. 즉, 각 그래프의 범례(legend)는 B열의 항목으로 한다.  // 만일 이 작업을 하나하나씩 그린다면, 시간이 많이 걸리고 번거로운 것 당연!!  // 자! 시작해 볼까요^^ // 먼저, 스타타로 그래프를 그릴려면, 위의 원본을 다음과 같은 형태로 일단 변환하는 것이 필요합니다.    * 오늘의 작업은 그래프 그리기이니, 이러한 형태로 변환하는 것은 나중에 기회가 되면 설명할께요.  여기에 더 관심이 있는 분은 import excel과 reshape 명령어를 공부하면 될 겁니다.... * 자! 다시 한 번 이번 작업에서의 핵심을 말하면 다음과 같습니다.  1. A열의 항목과 B의 항목을 각각 하나의 목록으로 받아내서 사용할 수 있어야 한다. 2. A와 B의 각 항목명을 문자로 인식, 즉 항목명은 물론 각 항목명 시작과 끝부분에 인용부호를 그대로 인식하여 사용할 수 있어야 한다. 구체적으로 말하면, " 항목명 " 의 형태를 살리면서 목록을 만들수 있어야 한다(스타타에서는 이게 생각보다 힘들다..물론, 알면 쉽지만 모르면 ㅠ.ㅠ) levelsof A, loc(grpA)  // 대분류 항목 목록 만들고 fore...