2014-10-09 2 views
0

나는이처럼 보이는 dataframe 있습니다R - 막대 그래프의 축 라벨의 두 세트에

ID Group Measure1 Measure 2 
001 A  59   559 
002 A  44   623 
003 B  129   498 
004 C  99   504 
005 C  78   378 

나는 X 축에 레이블 두 세트가있는 막대 그래프를 생성 할 : ID 값이있는 각 막대를 식별하는 레이블, 레이블이 속한 그룹별로 각 막대를 레이블하는 레이블. 내 데이터는 동일한 그룹의 구성원이 데이터 프레임에서 인접하도록 설정됩니다.

이미 Measure1과 Measure2 (그리고 경우에 따라 Measure3)를 표시하기 위해 색상 코딩을 사용하고 있기 때문에 그룹별로 막대를 색상 코딩하는 분명한 해결책은 적용 할 수 없습니다. 레이블 외에 그룹 정보를 표시하는 또 다른 방법이 있다면 나는 그것을 듣고 싶습니다.하지만 차트 하단에있는 두 세트의 레이블이 아마도 최상의 솔루션이라고 생각합니다. 나는 "환자 ID"라벨 아래에 그룹 레이블을 추가 할

Graph

: 다음은 라벨의 한 세트 하나의 플롯이다. 나는 필사적 경우

, 나는 포토샵을 사용하거나 레이블을 추가하는 페인트하지만 내가 거기 바라고하는 것은 R.

를 사용하여 레이블의 두 번째 세트를 추가하는 방법입니다 것입니다
+0

당신은 당신의 코드를 추가해야 – rawr

+0

그리고 barplot은 x 값의 벡터를 반환하므로 저장하십시오 :'bp <- barplot (...)'; 그리고 나서'text (bp, y = -1.5, labels = letters [1 : 3], xpd = TRUE)'또는 이와 비슷한 문자로 문자 또는 문자를 사용하십시오. – rawr

답변

1

시도 :

mm = melt(ddf, id=c('ID', 'Group')) 
ggplot(mm) + geom_bar(aes(x=interaction(ID, Group), y=value, group=variable, fill=variable), position='dodge', stat='identity') 

enter image description here

구분 조정할 수 있습니다

:

> with(ddf, interaction(ID, Group, sep="_")) 
[1] 1_A 2_A 3_B 4_C 5_C 
Levels: 1_A 2_A 3_A 4_A 5_A 1_B 2_B 3_B 4_B 5_B 1_C 2_C 3_C 4_C 5_C 
> 
> with(ddf, interaction(ID, Group, sep=" ")) 
[1] 1 A 2 A 3 B 4 C 5 C 
Levels: 1 A 2 A 3 A 4 A 5 A 1 B 2 B 3 B 4 B 5 B 1 C 2 C 3 C 4 C 5 C 
+0

이것은 좋은 해결책입니다. 라벨이 분리되는 방식을 수정할 수 있는지 알고 있습니까? 나의 목적을 위해, 개행 문자 또는 공백은 한 마디보다 바람직 할 것이다. – Slavatron

+1

@ Slavatron : 위의 답변에서 편집하십시오. – rnso

관련 문제