在同一图中以两个步骤绘制分段回归

时间:2016-10-11 17:28:21

标签: r

我试图在同一图表中绘制两条曲线,但它不起作用。如果x <= 3,则我想绘制函数f(x)= 3x + 2,如果在区间[0,6]上x> 3,则想要绘制f(x)= 2x-0.5x ^ 2。我以为我必须这样做

curve(3*x+2, 0,3)

curve(2*x-0.5*x^2,3,6, add = TRUE)

我可以做些什么来绘制这样的功能?

2 个答案:

答案 0 :(得分:1)

在第一个xlim中使用ylimcurve来设置图表的限制。

curve(3*x+2, 0,3, xlim = c(0, 6), ylim = c(-5, 12))
curve(2*x-0.5*x^2,3,6, add = TRUE)

enter image description here

由于第二条曲线仍然会被略微削减,您可能希望将c(-7 12)用于y限制。

另一个选项,如果您希望连接线路并且无需设置手动限制,则可以使用ifelse将这两个功能编码为一个:

curve(ifelse(x <= 3, 3 * x + 2, 2 * x - 0.5 * x^2), 0, 6, ylab = "f(x)")

enter image description here

答案 1 :(得分:0)

例如,你可以这样做,你可以得到2条曲线。

c1 <- curve(2*x-0.6*x^2,3,6)
c2 <- curve(2*x-0.5*x^2,3,6)

plot(c1)
lines(c2, col="red")

enter image description here