2016-09-08 5 views
0

R으로 스택 막대 그림을 만들려고합니다. 계산보다는 미리 정의하려는 값에 대한 오차 막대가 있지만 각 막대에는 다른 값이 있습니다.지정된 오차 막대 값으로 지정된 막대 막대 값으로 그래프 만들기 R

예를 들어, 내 데이터 프레임 인 경우 : I는 각 하나에 대한 오차 막대를 추가하려면 어떻게 그래서

mx <- melt(x, id.vars=1:2) 
ggplot(mx, aes(x=Period, y=value, fill=variable), xLabels=NA) + 
    geom_bar(stat="identity") + 
    facet_grid(~Sample) + 
    scale_fill_manual(values = c("grey69","black")) + 
    theme_bw() + 
    xlab("") + 
    ylab ("") 

:

x<-data.frame(
    Period = c("B1","D1a"), 
    Sample = c("Glucose","Glucose"), 
    Mi = c(2,3), 
    M0 = c(4,6) 
) 

가 나는이 코드를 필요로하는 바 그래프를 만들 수 있습니다 , 각각에 대한 신뢰 구간이 B1이라면, Mi = 0.5, B1, M0 = 0.2, D1a, Mi = 0.1, D1a, M0 = 0.2

막대의 각 섹션에서 오차 막대를 어떻게 만들 수 있습니까? 차트?

감사

답변

0

먼저 mx dataframe에 상부 및 하부 경계를 추가

다음
library(dplyr) 
mx <- mx %>% group_by(Period) %>% 
    mutate(pos = cumsum(value)) %>% 
    ungroup() %>% 
    mutate(ci = c(.5, .1, .2, .2), 
     upper = pos + ci/2, 
     lower = pos - ci/2) 

, 플롯에 geom_errorbar을 추가

ggplot(mx, aes(x=Period, y=value, fill=variable), xLabels=NA) + 
    geom_bar(stat="identity") + 
    geom_errorbar(aes(ymin = lower, ymax = upper), width = .2, col = "red") + 
    facet_grid(~Sample) + 
    scale_fill_manual(values = c("grey69","black")) + 
    theme_bw() + 
    xlab("") + 
    ylab ("") 

enter image description here

+0

완벽한 , 정말 고맙습니다! –

+0

안녕하십니까. 도와 주셔서 감사합니다. 이 답변으로 문제가 해결되면 수락으로 표시하십시오. –