2016-11-09 2 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

Ваш код дает правильный график для меня (в dev-версии 'ggplot2'), но на графике, показанном здесь, явно есть стоп-бары, которые перевернуты (и, следовательно, ошибки в неправильном месте). – Axeman

+1

Я не сильно изменил код, но да, думаю, я должен был это увидеть. Тай для указания. – Haboryme

+0

Большое спасибо! И спасибо, что указали на строки ошибок. –

 Смежные вопросы

  • Нет связанных вопросов^_^