R 在同一个图中,分两步绘制分段回归

R 在同一个图中,分两步绘制分段回归,r,R,我试着在同一个图形中绘制两条曲线,但不起作用。如果x3在区间[0,6]上,我想画函数f(x)=3x+2。我想我必须这么做 曲线(3*x+2,0,3) 及 我能做些什么来绘制这样的函数呢?你可以这样做,例如,你将得到两条曲线 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") c1在第一条曲线中使用xlim和ylim设置绘图的限制 curve(3*x+2, 0

我试着在同一个图形中绘制两条曲线,但不起作用。如果x3在区间[0,6]上,我想画函数f(x)=3x+2。我想我必须这么做

曲线(3*x+2,0,3)


我能做些什么来绘制这样的函数呢?

你可以这样做,例如,你将得到两条曲线

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")

c1在第一条
曲线中使用
xlim
ylim
设置绘图的限制

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)

由于第二条曲线仍然会被截断一点,因此您可能希望使用
c(-7 12)
作为y限制

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

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

curve(如果else(x)限制已禁用。您需要在第一次曲线调用中调整xlim和ylim,以便第二次显示。因此,将
ylim=c(-5,10),xlim=c(0,6)
添加到第一次曲线调用中。
curve(ifelse(x <= 3, 3 * x + 2, 2 * x - 0.5 * x^2), 0, 6, ylab = "f(x)")