2013-08-21 5 views
1

나는 y 축에 각 개별 변수에 대한 막대가있는 막대 그래프를 그려서 범주 변수에 따라 분할하려고합니다.Stata에서 복잡한 막대 그래프 그리기

phys 
emo 
soc 
sch 

그들은 삶의 질을 보여 0에서 100까지 모든 점수가 나는하여 x 축에 이들 각각을 분할 할 :

그래서, 내 변수는 x 축에 넣어이다 moderate 또는 high의 두 가지 카테고리가있는 변수입니다. 내가 할 것 같다 수있는 유일한 방법은 다음과 같습니다

Village (중 high 또는 moderate)에 x 축 분할 후 phys, emo, soc, sch의 4 개 종류로 이들 각각을 분리
gr bar phys emo soc sch, over(Village) 

. 4 개의 변수는 모두 별개이지만 점수가 같기 때문에 Stata의 카테고리가 될 수는 없습니다. 0-100이라는 레이블은 내가 원하는 바가 아니기 때문입니다.

누군가가 4 가지 변수를 하나의 변수로 결합하여 도움을받을 수 있다면 over(x) 옵션을 사용하면 도움이 될 것입니다.

+1

샘플 데이터는 사람들이 함께 플레이 할 것 : 여기

내 코드와 함께 작동 내가 사용하는 가짜 데이터입니다 .... 더 나은 대답을 데이터를 게시합니다. –

+0

샘플 데이터를 입력하십시오. –

+0

@ EXodia : 아래 답변을 유용하게 찾았습니까? – SOConnell

답변

1

최대 8 데이터 포인트가있는 것처럼 보입니다.이 경우 일반적으로 MS Excel에서 이와 같은 그래프를 제안 할 것입니다. 그러나 데이터 설명에서, 당신은 할 수있는 다음

foreach i in phys emo soc sch { 
rename `i' _`i' 
} 
reshape long _, i(village) j(state) string 
g cat=state+"-"+village 
gr bar _, over(cat) 

그런 다음 등의 색상을 주변의 변경, 바 레이블 & 멋지게 표시 작을 수 있도록 디스플레이 옵션을

또는

플레이

당신은 (데이터를 재편하지 않고)이 작업을 수행 할 수 있습니다 :

graph bar phys emo soc sch, over(village) bargap(-30) /// 
legend(label(1 "Physical") label(2 "Emotional") label(3 "Social") label(4 "School")) 

BTW, 당신은 X 축 U를 보여주는 말하는 나에게 이상한 p를 0-100 척도로 측정 하였다. 이 명령으로는 일어나지 않아야하며 데이터가 설명하는대로 설정되어 있어야합니다. 또한 "변수는 별개이지만 점수가 같습니다."- 실제로 여기에 언급 된 내용을 알지 못합니다.

village phys emo soc sch 
high 87 65 79 45 
moderate77 64 55 57 
+0

이것이 OP가 원하는 것인지 확실하지 않습니다 (샘플 데이터를 요청하는 세 번째 인물). 그러나 이것은 건설적인 것입니다. 'egen cat = group (state village), label '은 합성 변수를 얻는 또 다른 방법입니다. –

+0

네, 그걸 할 수있는 좋은 방법입니다. 트릭을 공유해 주셔서 감사합니다. – SOConnell

+0

http://www.stata-journal.com/sjpdf.html?articlenum=dm0034에서 토론이 있습니다. –

관련 문제