如何根据每个方面的因子创建两个不同的回归线? R,ggplot2

时间:2017-04-20 06:05:46

标签: r ggplot2 statistics linear-regression

我正在尝试为每个方面(按性别)基于exercise = 0或exercise = 1创建两个不同的行。第一个代码没有facet_wrap,基于性别的两行不同。第二个代码是facet_wrap,两行似乎是同一行。如何更改代码以使每个方面内的两条线不同?

ggplot(cdc, aes(weight,wtdesire, color = exercise, group = 
interaction(gender,exercise))) + geom_point(alpha = 1/5) + 
geom_smooth(method = lm, aes(linetype=exercise))

生成:facet

然而,当我添加facet_wrap时,每个facet的两行似乎是相同的。

ggplot(cdc, aes(weight,wtdesire, color = exercise, group = 
interaction(gender,exercise))) + geom_point(alpha = 1/5) + 
geom_smooth(method = lm, aes(linetype=exercise)) + facet_wrap(~gender)

生成:second

1 个答案:

答案 0 :(得分:0)

@LoBu解决方案是正确的。以下是使用mtcars数据的示例:

ggplot(mtcars, aes(hp, mpg, group=interaction(vs, am))) +  
       geom_point(alpha = 0.2) + 
       geom_smooth(method = lm, aes(linetype=as.factor(vs)))

enter image description here

ggplot(mtcars, aes(hp, mpg, group=vs)) +  
       geom_point(alpha = 0.5) + 
       geom_smooth(method = lm, aes(linetype=as.factor(vs))) +
       facet_wrap(~am)

enter image description here