0

我想在 R 中绘制两个 ablines,但以某个值为条件。我希望绘制的图形的斜率为 -1 并且截距 y=50,直到值 50。然后对于所有 x,它的斜率为 0 并在此之后截距 0。

编码:

plot.new()
plot.window(xlim=c(0,100),ylim=c(0,100))
abline(a=50,b=-1)
##abline(a=0,b=0)
axis(1)
axis(2)
title(main="Graph")
title(xlab="X")
title(ylab="Y")
box()

使用正常的 abline 我可以得到一个或另一个,但我不确定如何将两者添加到同一个图中而没有任何重叠。请帮忙!

4

4 回答 4

2

对于行的第一部分,您可以使用函数lines(),然后为 x 值(0 和 50)提供起始值和结束值,对于 y 值,使用线性回归方程作为a+b*xwherea=50b=-1x 使用相同的值。第二部分也可以使用segments()您将坐标作为开始和结束的功能来制作。segments()如果您现在已经开始和结束那条线,也可以制作第一条线。

plot.new()
plot.window(xlim=c(0,100),ylim=c(0,100))
lines(x=c(0,50),y=50-1*c(0,50))
segments(50,0,100,0)
于 2013-11-04T15:36:52.267 回答
0

如果我理解得很好,你想要一条从 x=0 到 x=50 的线,截距为 y=50,斜率为 -1,然后从 x=50 到 x=100,斜率为 0。你可以为此使用lines() 而不是abline()。

plot.new()
plot.window(xlim=c(0,100),ylim=c(0,100))
lines(c(0,50,100), c(50,0,0))
axis(1)
axis(2)
title(main="Graph")
title(xlab="X")
title(ylab="Y")
box()
于 2013-11-04T15:36:53.973 回答
0

这是使用ablineclipplotrix 的解决方案:

plot(1, type='n', xlim=c(0,100), ylim=c(0,100),
   xlab="X", ylab="Y")
library(plotrix)
ablineclip(50,-1, x1=0, x2=50)
ablineclip(0,0,x1=50, x2=100)
于 2013-11-05T09:19:37.487 回答
0

如何使用功能segmentswhoDraw line segments between pairs of points.

plot.new()
plot.window(xlim=c(0,100),ylim=c(0,100))
#abline(a=50,b=-1)
#abline(a=0,b=0)
segments(0,50,50,0)
segments(50,0,100,0)
axis(1)
axis(2)
title(main="Graph")
title(xlab="X")
title(ylab="Y")
box()

这是情节的样子:在此处输入图像描述

于 2013-11-04T15:37:20.880 回答