我试图使用ggplot2 geom_smooth绘制带有标准误差(se)的线性回归,其中排除负值。不幸的是,使用scale_y_continuous会截断部分标准错误填充。如何在y = 0时平滑地结束se填充区域?
参见示例(使用y = 10而不是y = 0,但是相同的过程):
ymax<-max(mtcars$mpg)
myplot<- ggplot(data=mtcars, aes(x=wt, y=mpg)) +
geom_smooth(method=lm, se=TRUE,fill = "#3399FF", colour="#0000FF",size =1) +
geom_point(shape=20, size=2) +
scale_y_continuous(limits = c(10, ymax))
suppressMessages(print(myplot))
我希望我可以发布图表,但我刚加入了堆栈溢出,并且没有足够的信誉点来发布图片。该图显示回归线如预期的那样在y = 10处结束,但是se填充以垂直边缘结束(不是水平线,而下面应该排除se的线)。谢谢,抱歉,我无法发布图片:)
答案 0 :(得分:2)
使用新版本的ggplot,我们现在需要:
scale_y_continuous(limit=c(10,NA),oob=squish)
答案 1 :(得分:0)
我认为您要加载scales
包(library("scales")
)并将scale_y_continuous
配方更改为
scale_y_continuous(limit=c(10,ymax),oob=squish)
你的另一个选择是
+ coord_cartesian(ylim = c(10, ymax))