我希望使用limits
中的scale_y_continuous
“裁剪”我的Y轴:
df1 <- data.frame(xx=c('a','b','c'),
yy=c(7, 10, 8),
se=c(2, 4, 2))
p <- ggplot(data=df1, mapping = aes(x=xx, y=yy)) +
geom_bar(data = df1, position=position_dodge(), stat="identity") +
geom_errorbar(aes(ymin=yy-se, ymax=yy+se), width=0.1, position=position_dodge())
p # left plot
p + scale_y_continuous(limits=c(0,11)) # middle plot
# Warning message:
# Removed 4 rows containing missing values (geom_path).
在这种情况下,一个误差条超过Y轴的上限,我希望它只是被裁剪(如右图所示),但实际上误差条的垂直线根本没有渲染(cf在中间的情节。除了手动绘制误差条之外,还有什么办法可以解决这个问题吗?
答案 0 :(得分:1)
我相信
library("scales")
p + scale_y_continuous(limits=c(0,11),oob=squish)
会做(未经测试); &#34; OOB&#34;代表&#34;超出范围&#34;
更标准的答案是使用
coord_cartesian(ylim=c(0,11))
但这也会改变标记间距等。