2015-01-11 5 views
3

ggplot2에서 원하는 그래프를 생성하는 다음 코드로 다음 데이터 세트를 가지고 있습니다. 그들이에 어떤 그룹도 이미 표시 방법 ptids를 표시하지만 그래서 나는 그룹에 의해 x 축에 PTIDs을 LABLE하고 싶습니다.그룹 별 X 축 값 레이블 지정

 PTID  Group variable value 
1 subject1 Group 1 Bio.V3.B 43 
2 subject2 Group 1 Bio.V3.B 7410 
3 subject3 Group 2 Bio.V3.B 13227 
4 subject4 Group 2 Bio.V3.B 4832 
5 subject5 Group 3 Bio.V3.B 205 
6 subject6 Group 3 Bio.V3.B 24899 
1 subject1 Group 1 Bio.V3.C 496 
2 subject2 Group 1 Bio.V3.C 5932 
3 subject3 Group 2 Bio.V3.C 24093 
4 subject4 Group 2 Bio.V3.C 85 
5 subject5 Group 3 Bio.V3.C 9503 
6 subject6 Group 3 Bio.V3.C 18249 

ggplot(data=meltedwk28v3, aes(x=PTID, y=value, fill=variable)) + 
    geom_bar(width= .5, colour="black", stat="identity", #barwidth 
      position=position_dodge(width=.7), #gapwidth 
      size=.2) +      # Thinner lines 
    scale_fill_hue(name="Bio-V3 Clade") +  # Set legend title 
    xlab("PTID") + ylab("MFI") + # Set axis labels 
    ggtitle("Wk28 Bio-V3 MFI") + # Set title 
    theme_classic() + theme(axis.text.x = element_text(angle=90,  hjust=0, vjust=0)) #Themes 

감사합니다!

답변

1

하나의 가능성은 x 변수로 'PTID'와 '그룹'사이의 interaction을 사용하는 것입니다

ggplot(data = df, aes(x = interaction(PTID, Group, sep = " "), y = value, fill = variable)) + 
    geom_bar(width= 0.5, colour="black", stat = "identity", 
      position = position_dodge(width = 0.7), 
      size = 0.2) + 
    xlab("PTID") + ylab("MFI") + 
    ggtitle("Wk28 Bio-V3 MFI") + 
    theme_classic() + 
    theme(axis.text.x = element_text(angle = 90, hjust = 0, vjust = 0)) 

enter image description here

+0

이 올바른 방향으로 날 포인트 주셔서 감사합니다! – AwesomeeExpress

+0

보다 정교한 라벨을 보려면 예 : [** 여기 **] (http://stackoverflow.com/questions/18165863/ggplot2-labels-of-grouping-values-below-the-plot?rq=1) – Henrik

+0

@AwesomeeExpress, 좋은 생각 일 수 있습니다. 당신이 유용하다고 생각한다면이 대답을 수락하고 upvote하십시오. –