如何让ggplot中的vline与hline在指定位置终止
限制ggplot2中辅助线的显示范围
你当前使用geom_vline()和geom_hline()绘制的辅助线会默认贯穿整个绘图区域,要实现线条延伸不超过-1位置的需求,你可以改用geom_segment()来精确控制线段的起点和终点坐标:
修改后的代码
# load ggplot2 library library(ggplot2) # create example data x <- rnorm(50) y <- x + rnorm(50) # create ggplot object with equal axis lengths p <- ggplot(data = data.frame(x, y), aes(x = x, y = y)) + geom_point() + geom_abline() + scale_y_continuous(breaks = seq(-3,3, by=1),limits = c(-3,3)) + scale_x_continuous(breaks = seq(-3,3, by=1),limits = c(-3,3)) # 用geom_segment替代geom_vline/hline,精确控制线段范围 p <- p + # 垂直线x=-1,从y=-3延伸到y=-1 geom_segment(x = -1, xend = -1, y = -3, yend = -1, color = "blue") + # 水平线y=-1,从x=-3延伸到x=-1 geom_segment(x = -3, xend = -1, y = -1, yend = -1, color = "blue") # 查看绘图 print(p)
说明
geom_segment()需要明确指定线段的起点(x,y)和终点(xend,yend)坐标,这样就能精准控制线条的显示范围,不会像geom_vline()/geom_hline()那样贯穿整个坐标轴。- 如果你的需求是让两条线从(-1,-1)点延伸到坐标轴的其他方向(比如垂直线从(-1,-1)到y=3),只需要调整
y和yend的数值即可。
内容的提问来源于stack exchange,提问作者curious
相关产品推荐
相关产品推荐

