在R plot

时间:2015-10-16 14:00:18

标签: r plot

我已经设法在没有所有较粗的红线和数字(70,28)的情况下制作一个情节,如何把它放在这样的情节中(我已经知道了我想要的点的值)在情节中显示)?

enter image description here

2 个答案:

答案 0 :(得分:1)

要将截距线添加到绘图中,请使用abline

abline(v = x)会在x点添加一条垂直线。

abline(h = y)会在y点添加一条垂直线。

但是,这些线条将涵盖整个情节。要在交叉点停止它们,您需要使用lines代替,它具有稍微复杂的参数(因为您需要同时指定起点和终点坐标)。

您可能还想通过xaxs = 'i'

删除绘图和轴之间的空间
plot(speed ~ dist, cars, xaxs = 'i', yaxs = 'i')
lines(c(0, 40), c(10, 10), col = 'red', lwd = 2)
lines(c(40, 40), c(0, 10), col = 'red', lwd = 2)

最后,text可用于插入适当的文字。

答案 1 :(得分:1)

您需要使用segmentsaxis。在segments调用中,我使用-1000作为起始点,以确保该行一直到轴。

#plot values
x <-1:100
y <-seq(1,200,2)

#known point
xx <- 65
yy <- 130

plot(x,y,type="l")
segments(x0=-1000, y0=yy, x1 = xx, y1 = yy,col="red") #horiz segment
segments(x0=xx, y0=-1000, x1 = xx, y1 = yy,col="red") #vert segment
axis(1,xx,xx, col="red", col.lab="red",col.axis="red") #x-axis point
axis(2,yy,yy, col="red", col.lab="red",col.axis="red") #y-avis point

enter image description here

如果您希望第二段中的垂直红线停在0处(如示例所示),请使用:

segments(x0=xx, y0=min(y), x1 = xx, y1 = yy,col="red") #vert segment