使用ggplot2绘制具有两种不同颜色的单行

时间:2013-02-21 17:56:19

标签: r ggplot2 linear-regression

我正在尝试使用ggplot2绘制一组数据。数据分为两类。我想用一条线性回归线将它们绘制在一起。但是,我想让两组中的每一组都以不同的颜色绘制。这是我得到的:

enter image description here

以下是我如何得到它:

library(ggplot2)
dframe1 <- structure(list(a = 1:6, b = c(5, 7, 9, 10.5, 11.7, 17), category = structure(c(1L, 
1L, 1L, 2L, 2L, 2L), .Label = c("a", "b"), class = "factor")), .Names = c("a", 
"b", "category"), class = "data.frame", row.names = c(NA, -6L
))
qplot(a, b, data = dframe1, colour = category) + geom_smooth(method = lm)

如何使绘图仅对所有数据使用一条回归线?

注意:除此之外,我很困惑为什么这些行中只有一行显示了置信区间,但这不是我当前问题的重点

2 个答案:

答案 0 :(得分:8)

相当于@ Roland的答案,使用ggplot代替qplot

ggplot(dframe1, aes(x = a, y = b)) +
    stat_smooth(method = lm) +
    geom_point(aes(color = category))

答案 1 :(得分:5)

只需修改美学以排除分组因素:

qplot(a, b, data = dframe1, colour = category) + 
  geom_smooth(aes(colour=NA),method = lm)

enter image description here