在分面线图中按组改变线条颜色,每个面中只有一条线

时间:2014-02-18 19:00:56

标签: r ggplot2

下面是生成数据的代码和ggplot2分面线图,它似乎工作正常。但是,我想根据附加(组)的值更改行的颜色,这在我的示例中当前不是。我试过添加:

+element_line(color=combined$group))

但它没有改变任何东西。我正在尝试做什么?同样,我想在每个方面只保留1行,但是根据“组”的值更改颜色。在此先感谢您的帮助!

require(ggplot2)    
Year<-c(rep(2012,10),rep(2013,10),rep(2014,10))
MULTDV<-rnorm(30)
Construct<-factor(rep(1:10,3))
group<-rep(c(rep(1,5), rep(2,5)),3)

combined<-as.data.frame(cbind(Year, MULTDV, Construct, group))
qplot(factor(Year), MULTDV, data=combined, xlab=NULL, ylab=NULL, stat="identity") + stat_summary(fun.y=mean, colour="steelblue3", geom="line", aes(group=1))+facet_wrap(~Construct,  nrow = 2)

2 个答案:

答案 0 :(得分:0)

就目前而言,您的代码不会产生“刻面线图”,并且FactTest未在任何地方定义。但是,以下代码可以让您接近您想要做的事情:

combined<-data.frame(Year, MULTDV, Construct, group)

qplot(factor(Year), MULTDV, data=combined, 
      geom = "line", group = Construct, color = factor(group),
      facets = ~ Construct)

答案 1 :(得分:0)

我最终做了以下工作,虽然可能有一种更优雅的方式,但仍然有效。

require(ggplot2)    
Year<-c(rep(2012,10),rep(2013,10),rep(2014,10))
MULTDV<-rnorm(30)
Construct<-factor(rep(1:10,3))
group<-rep(c(rep(1,5), rep(2,5)),3)
combined<-as.data.frame(cbind(Year, MULTDV, Construct, group))
cols<- c("1"="steelblue3","2"="red")

ggplot(combined,aes(x=factor(Year),y=MULTDV))+
    stat_summary(fun.y=mean, geom="line", aes(group=2, colour=factor(group)))+
    facet_wrap(~Construct,  nrow = 2)+
    geom_point()+
    scale_colour_manual(values = cols, guide="none")+
    theme(legend.position = "none")
当我尝试它时,aaronwolen的代码似乎给了我类似的结果,在我看到他的反应之前,我已经想到了另一种方式。谢谢亚伦!