2016-07-15 2 views
1

막대 그래프와 유의미 스타가있는 막대 그래프를 플로팅하려고합니다. 의미가 별 이상한 오류 표시 줄에 떨어지는 것을 제외하고는 모든 것이 잘됩니다. 중요성 별을 개별적으로 조정할 수 있습니까? 감사.ggplot2에서 오류 막대가있는 막대 그래프

R 코드

dat <- read.delim("read_count1", header=T) 
dat2 <- dat 
dat2$condition <- factor(dat2$condition) 
dat2$star <- "" 
dat2$star[dat$p == .001] <- "*" 
dat2$star[dat$p == 0.0001] <- "**" 

ggplot(dat2, aes(x=group, y=value, fill=condition)) + 
geom_bar(colour="black", stat="identity", position=position_dodge(), 
     size=.3,width=.5) +       # Thinner lines 
xlab("Condition") + ylab("Viral transcript count") + # Set axis labels 
theme_bw() + 
theme(legend.position=c(0.85, .9), legend.direction = "vertical", 
     legend.key.size = unit(4, 'lines'), legend.title=element_blank()) + 
theme(axis.text = element_text(size=8), axis.title = element_text(size=8,face="bold")) + 
theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
geom_errorbar(aes(ymin=value-sd, ymax=value+sd), 
       width = 0.2,       # Width of the error bars 
       position = position_dodge(-.5)) + 
geom_text(aes(label=star), colour="red", vjust=0, size=5, position=position_dodge(.5)) + 
scale_y_continuous(expand=c(0,0), limits = c(0, 13536400))+ 
scale_x_discrete("Viral gene") 

내 데이터

condition value sd group p 
1h 968738.666666667 131475.799527264 Capsid protein 
1h 340500.666666667 48855.1227235521 Nucleic acid binding protein 
1h 604250.666666667 100141.322860912 Triple gene block p1  
1h 293140.333333333 48797.8510831505 Triple gene block p2  
1h 91655.3333333333 20761.7967992497 Triple gene block p3  
1h 3615029.33333333 635586.634090376 Replication polyprotein 
4h 2787724 245341.698797819 Capsid protein 0.001 
4h 971762.666666667 99832.8035483995 Nucleic acid binding protein 0.001 
4h 2017158.33333333 107557.964732201 Triple gene block p1 0.0001 
4h 949650 50649.2672306323 Triple gene block p2 0.0001 
4h 286073.666666667 8140.5804051882 Triple gene block p3 0.0001 
4h 11525318.6666667 1425912.09504525 Replication polyprotein 0.001 

enter image description here

+1

데이터를 쉽게 읽을 수 있도록 입력 할 수 있습니까? – BarkleyBG

+0

나의 첫 번째 생각은 y 축 상한을 증가 시키면 별표가 원하는대로 오류 막대 위에 올라갈 수 있다는 것입니다. (범례를 오른쪽 상단에서 왼쪽 상단으로 옮길 수도 있습니다) – BarkleyBG

+3

텍스트의 y 위치를 'value'에 매핑합니다. 대신 'value + sd'에 매핑하면 바 상단 대신 오류 막대의 상한선에서 시작합니다. – aosmith

답변

4

놓고 Y 위치를 매핑함으로써 오히려 바의 상단보다 오차 막대의 상단의 텍스트 레이어 value + sdgeom_text입니다.

geom_text(aes(y = value + sd, label = star),...) 
관련 문제