如何在绘图中制作垂直线段?

3
我有一个plot(x, y),我想在x = 2处添加一条竖直线,仅从y = 1到4。我想使用lines()函数,但我在限制y轴范围方面遇到了麻烦。
有什么简单的方法可以做到这点?Original Answer:最初的回答

你能添加一些示例数据和一个错误的示例以及你想要看到的结果吗? - morgan121
你能加上你尝试过的内容吗? - busybear
3个回答

4
下面是使用plotlines的简单示例。要从(2, 1)画一条线到(2, 4),您需要提供x坐标和y坐标,分别为(2, 2)(1, 4)
plot(1:5)
lines(c(2, 2), c(1, 4))

enter image description here


4

ggplot2也提供了非常简单的解决方案!

library(ggplot2)
set.seed(1)
# Create some dummy data
data.frame(X = rpois(n = 10, lambda = 3), 
           Y = rpois(n = 10, lambda = 2)) %>% 
# Pipe to ggplot
    ggplot(aes(X, Y)) + 
    geom_point() + 
    geom_segment(aes(x = 1, xend = 1, y = 1, yend = 4), color = "red")

在美学呼叫geom_segment()中,您可以选择x和y参数的起始点和结束点。然后,只需将+ geom_segment(aes(...))添加到上面的代码末尾即可轻松添加多个线段。

enter image description here


对于多个线段,我需要分别为每个线段添加+ geom_segment(aes(...))吗?有没有一种方法可以在一行中完成它们? - Rel_Ai
如果你想要多个线段,你可以添加多个geom_segment命令,或者你可以创建一个全新的表格,其中包含行号(用于分组),x,xend,y和yend,然后将其传递给geom_segment - OTStats

2

为了完整性,R中还有一个基本的图形函数可以做到这一点:segments(x0,y0,x1,y1):

注:Original Answer翻译成“最初的回答”。

plot(1:5)
segments(2,1,2,4)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接