如何让ggplot2中geom_vline从y=0开始且不修改ylim范围?
解决ggplot2中限定垂直线起始y值的问题
直接用geom_vline没法单独控制它的y轴范围,换成geom_segment就能精准指定线段的起止坐标,完美满足你的需求——既保留ylim(-20, 300)的显示范围,又让垂直线只从y=0开始延伸到y轴上限。
修改后的代码如下:
x <- rnorm(1000) df <- data.frame(x) library(ggplot2) ggplot(df, aes(x)) + geom_histogram(bins = 10) + ylim(-20, 300) + geom_segment(aes(x = 0, xend = 0, y = 0, yend = 300)) # 用segment替代vline,指定y的起止
核心逻辑:
geom_segment需要明确给出x(起始x)、xend(结束x)、y(起始y)、yend(结束y)四个参数,这里x和xend都设为0,就实现了垂直线的效果- y设为0、yend设为300(和ylim的上限一致),这样线段就只会在y=0到300的区间显示,不会延伸到y=-20的区域
内容的提问来源于stack exchange,提问作者Sundown Brownbear
相关产品推荐
相关产品推荐

