使用R中的qplot将回归线添加到facet_grid

时间:2012-09-24 20:00:13

标签: r ggplot2

我正在尝试为此facet_grid添加回归线,但我似乎遇到了问题。

 qplot(date, data=ua, geom="bar", 
                      weight=count, 
                      ylab="New User Count", 
                      xlab='Date', 
                      main='New Users by Type Last 3 Months',
                      colour=I('lightgreen'),
                      fill=I('grey')) + 
    facet_grid(un_region~role, scales='free', space='free_y') + 
    opts(axis.text.x =theme_text(angle=45, size=5))

以下是我正在使用的数据示例,请注意计数需要求和,这就是为什么我使用weight = count,不确定是否有更好的方法。

     date         role                   name un_region              un_subregion us_state count
1 2012-06-21 ENTREPRENEUR              Australia   Oceania Australia and New Zealand              2
2 2012-06-21 ENTREPRENEUR                Belgium    Europe            Western Europe              1

感谢。

1 个答案:

答案 0 :(得分:3)

我不确定你是在绘制斜坡,因为看起来你正在使用条形图。有三种方法可以做到,我将说明两种。如果您有实际的xy数据并且想要按facet拟合各个回归线,只需使用stat_smooth(method="lm")即可。这是一些代码:

library(ggplot2)
x <- rnorm(100)
y <-  + .7*x + rnorm(100)
f1 <- as.factor(c(rep("A",50),rep("B",50)))
f2 <- as.factor(rep(c(rep("C",25),rep("D",25)),2))
df <- data.frame(cbind(x,y))
df$f1 <- f1
df$f2 <- f2

ggplot(df,aes(x=x,y=y))+geom_point()+facet_grid(f1~f2)+stat_smooth(method="lm",se=FALSE)

这会产生:

enter image description here

或者您可以使用geom_abline()命令设置自己的拦截和斜率。这是一个使用覆盖在条形图上的钻石数据集的示例,也许是您正在寻找的。

enter image description here

您可以使用此代码段查看仅包含散点图的示例 ggplot(df,aes(x=x,y=y))+geom_point()+facet_grid(f1~f2)+geom_abline(intercept = 0, slope = 1 )