2014-02-18 1 views
0

ниже - код для создания данных и гранжевой график ggplot2, кажется, работает нормально. Тем не менее, я хотел бы изменить цвет строки на основе значения дополнительной (группы), которая в настоящее время отсутствует в моем примере. Я пробовал добавить:Изменение цвета линии по группе в гранированном линейном графике с одной строкой в ​​каждом фасете

+element_line(color=combined$group)) 

Но это ничего не изменило. Это то, что я пытаюсь сделать возможным? Опять же, я хочу сохранить только одну строку в каждом аспекте, но изменить цвет на основе значения «группа». Заранее спасибо за вашу помощь!

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) 

ответ

0

Как можно заметить, что ваш код не производит «граненый линейный график» и FactTest не был определен в любом месте. Тем не менее, следующий код вы должны получить близко к тому, что вы пытаетесь сделать:

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

qplot(factor(Year), MULTDV, data=combined, 
     geom = "line", group = Construct, color = factor(group), 
     facets = ~ Construct) 
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, казалось, дать мне тот же результат, когда я попробовал это, я просто уже понял, это другой путь, прежде чем я увидел его ответ. Спасибо, аарон!

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