2016-11-09 178 views
0

如何使酒吧(代表處理「B1」和「D1a」)不同的顏色。他們現在都是紅色的,例如我如何讓B1紅(在淡紅色下疊成大膽的紅色)和D1a藍色(在淡藍色下疊加爲大膽的藍色)?
這是到目前爲止我的腳本:使堆疊的酒吧中的酒吧繪製不同的顏色ggplot

#glucose 
x<-data.frame(
    Period = c("B1","D1a"), 
    Sample = c("Glucose","Glucose"), 
    Mi = c(34.01497478, 7.616569764), 
    M0 = c(116.6844713,11.88958888) 
) 

mx <- melt(x, id.vars=1:2) 

mx <- mx %>% group_by(Period) %>% 
    mutate(pos = cumsum(value)) %>% 
    ungroup() %>% 
    mutate(ci = c(1.773332238, 1.0661239, 6.083212937, 1.664236691), 
     upper = pos + ci/2, 
     lower = pos - ci/2) 

b<-ggplot(mx, aes(x=Period, y=value, fill=variable), xLabels=NA) + 
    geom_bar(stat="identity", width=0.65, aes(alpha=variable)) +  
    scale_alpha_manual(values=c(0.9,0.35)) + 
    geom_errorbar(aes(ymin = lower, ymax = upper), width = .3,size = 0.6, col = "black") + 
    facet_grid(~Sample) + 
    scale_fill_manual(values = c("red","red")) + 
    theme_bw() + 
    xlab("") + 
    ylab("") 

b+theme(axis.text=element_text(size=20), 
     axis.title=element_text(size=22,face="bold"), 
     text = element_text(size=45), 
     legend.position="none") 

非常感謝。

回答

2

你可以這樣做:

b<-ggplot(mx, aes(x=Period, y=value ,fill=Period), xLabels=NA) + 
    geom_bar(stat="identity", width=0.65, aes(alpha=variable)) +  
    scale_alpha_manual(values=c(0.9,0.35)) + 
    geom_errorbar(aes(ymin = lower, ymax = upper), width = .3,size = 0.6, col = "black") + 
    facet_grid(~Sample) + 
    # scale_fill_manual(values = c("red","red")) + 
    scale_fill_manual(values=c("red","blue"))+ 
    theme_bw() + 
    xlab("") + 
    ylab("") 

b+theme(axis.text=element_text(size=20), 
     axis.title=element_text(size=22,face="bold"), 
     text = element_text(size=45), 
     legend.position="none") 

其中給出:

enter image description here

/\ 請注意,如果顯示圖例,你將有2項,一個是顏色和一個!爲阿爾法。

+0

您的代碼爲我生成了正確的繪圖(在'ggplot2'的開發版本上),但這裏顯示的繪圖清楚地顯示了已反轉的堆棧條(因此在錯誤的位置顯示了錯誤條)。 – Axeman

+1

我沒有改變很多代碼,但是,我想我應該看到這一點。 Ty指出它。 – Haboryme

+0

非常感謝!並感謝您指出錯誤欄。 –