R中有多个下划线

时间:2013-11-04 15:22:33

标签: r plot

我想在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 个答案:

答案 0 :(得分:2)

对于行的第一部分,您可以使用函数lines(),然后为x值(0和50)提供开始和结束值,对于y值,使用线性回归方程为a+b*x其中{{ 1}}和a=50和x用于相同的值。第二部分也可以使用函数b=-1来设置开始和结束的坐标。如果您现在已经开始和结束该行,则第一行也可以使用segments()

segments()

答案 1 :(得分:0)

如果我理解得很好,你想要一条从x = 0到x = 50的线,截距为y = 50,斜率为-1,然后从x = 50到x = 100,斜率为你可以使用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()

答案 2 :(得分:0)

如何使用segments

Draw 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()

以下是情节的样子:enter image description here

答案 3 :(得分:0)

以下是使用plotrix的ablineclip的解决方案:

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)