2012-09-12 52 views
1

我无法控制barplots的颜色ggplot颜色geom_bar

require(mice) 
require(ggplot2) 
impute <- mice(nhanes, seed = 101) 
ldt <-complete(impute,"long", include=TRUE) 
ldt$Imputed<-ifelse(ldt$".imp"==0,"Observed","Imputed") 

ggplot(ldt[!is.na(ldt$hyp),], aes(x= factor(hyp), colour=Imputed)) + 
    geom_bar() + 
    facet_wrap(~.imp, nrow = 1) + 
    scale_y_continuous(expand = c(0,0)) 

其中给出的: enter image description here

但我想填充的颜色吧,所以我尝试:

ggplot(ldt[!is.na(ldt$hyp),], aes(x= factor(hyp))) + 
    geom_bar(colour = Imputed) + 
    facet_wrap(~.imp, nrow = 1) + 
    scale_y_continuous(expand = c(0,0)) 

但这给出了错误:

Error in do.call("layer", list(mapping = mapping, data = data, stat = stat, : 
    object 'Imputed' not found 

回答

2

在第一次尝试时使用fill=Imputed而不是colour=Imputed

ggplot(ldt[!is.na(ldt$hyp),], aes(x= factor(hyp), fill=Imputed)) + 
    geom_bar() + 
    facet_wrap(~.imp, nrow = 1) + 
    scale_y_continuous(expand = c(0,0)) 

您可以设置在geom_barfill=Imputed代替,但你必须在调用包裹,aes,就像在调用ggplot

enter image description here

2

代替在原始审美映射使用colour = Imputed的,使用fill = Imputed

ggplot(ldt[!is.na(ldt$hyp),], aes(x= factor(hyp), fill=Imputed)) + 
    geom_bar() + 
    facet_wrap(~.imp, nrow = 1) + 
    scale_y_continuous(expand = c(0,0))