我想在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我可以得到一个或另一个,但我不确定如何在同一个图中添加两个而没有任何重叠。请帮忙!
答案 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()
以下是情节的样子:
答案 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)