我在向ggplots添加线性回归线时遇到麻烦。
它应该是这样的:
当前是这样的:
这是我的代码:
p <- ggplot(data = wage, aes(x = educ, y = lwage, colour = black,
cex = IQ, pch = married, alpha = 0.7)) + geom_jitter()
p1 <- p + facet_grid(urban~experclass) + geom_smooth(se=F,method="lm")
p1 + labs(x = "Education (year)", y = "Log Wage", shape = "Marital status",
colour = "Ethnicity") + guides(alpha = FALSE)
我的
geom_smooth
的位置错误吗?我想要的是该图的每个元素只有一条黑色回归线-而不是一层一层。此外,当我添加回归线时,图例符号也会发生变化。尤其是智商传奇看起来很奇怪。这里有我没有考虑的东西吗?
外观如何:
外观:
最佳答案
我可以尝试回答您问题的至少一部分-这是关于绘制一条回归线而不是每个面板绘制两条回归线的部分。我没有您的数据,因此无法完全复制您的问题,但是我认为这可以解决问题。
原始ggplot()调用中的外观将被所有后续层(包括geom_smooth)继承。
您似乎想要的是颜色美感(恰好是一个分组标识符),该颜色美感仅适用于抖动点而不适用于线条。因此,您可以这样编写代码:
p <- ggplot(data = wage, aes(x = educ, y = lwage,
cex = IQ, pch = married, alpha = 0.7)) +
geom_jitter()
p1 <- p + facet_grid(urban~experclass) +
geom_smooth(se=F,method="lm",
aes(colour = black))
或者,以一种修改后的样式作为单个ggplot调用:
p3 <- ggplot(data = wage,
aes(x = educ, y = lwage,
size = IQ, shape = married, alpha = 0.7)) +
geom_jitter() +
geom_smooth(se=F,method="lm",
aes(colour = black))+
facet_grid(urban~experclass)
p3