我试图将geom_smooth()
趋势添加到某个箱线图中,但我没有正确获取图层。
如何将这两者合并在一起?
geom_boxplot:
ggplot(test) + geom_boxplot(aes(x=factor(year), y = dm))
geom_smooth
ggplot(test, aes(year, dm)) + geom_smooth()
geom_boxplot和geom_smooth
ggplot(test) + geom_boxplot(aes(x=factor(year), y = dm)) + geom_smooth(aes(x = year, y = dm))
答案 0 :(得分:14)
我使用了mtcars
公开数据,因为它没有被提问者使用。
data(mtcars)
像往常一样创建箱图,并分配给对象。我把随机变量作为boxplot的一个因子,另一个变量作为数字。
g <- ggplot(mtcars, aes(factor(carb), mpg)) + geom_boxplot()
添加geom_smooth。 geom_smooth从geom_boxplot继承必要的信息。
g + geom_smooth(method = "lm", se=TRUE, aes(group=1))
注意到在这种情况下geom_smooth需要表达式aes(group=1)
。没有它,R返回错误:
geom_smooth:每个组只有一个唯一的x值。也许你想要aes(group = 1)?
固定线条平滑的值是线性回归的系数,而截距对应于因子的最低级别(carb = 1)