为什么 lines() 函数在我的代码中不起作用
why lines() function didn't work in my code
我尝试在回归图上绘制区间,但是lines函数根本不起作用,而matlines函数只是绘制了三条没有斜率的直线。
我的数据集来自包 "faraway"。
y = salmonella$colonies
x = salmonella$dose
salmonella_fit = lm(y ~ x)
summary(salmonella_fit)
newdose = data.frame( x= c(20, 40, 60, 80, 120, 150, 180, 300,500))
conf_interval = predict(salmonella_fit, newdose, interval = "confidence", level = 0.95)
xval = c(20, 40, 60, 80, 120, 150, 180, 300, 500)
plot(conf_interval[ ,1] ~ xval, xlab = "newdose", ylab ="colonies", main = "Regression")
abline(salmonella_fit, col="lightblue")
lines(conf_interval[,2] ~ xval, col ="blue", type = "l")
lines(conf_interval[,3] ~ xval, col ="blue", type = "l")
matlines(conf_interval, xval, col=c("lightblue","blue","blue"))
这是我得到的:
我已经在网站上找遍了所有的解释,但还是看不懂台词,希望你能告诉我我的代码有什么问题。
非常感谢。
lines
函数将 x 坐标指定为第一个向量,将 y 坐标指定为第二个向量。
在您的情况下,整个绘图代码可能如下所示:
plot(conf_interval[ ,1] ~ xval, xlab = "newdose", ylab ="colonies", main = "Regression", ylim=range(conf_interval))
abline(salmonella_fit, col="lightblue")
lines(xval, conf_interval[,2], col="blue")
lines(xval, conf_interval[,3], col="blue")
请注意,我还必须添加 ylim=range(conf_interval)
以便扩展 y 轴的范围。否则置信区间将超出绘图区域。
这是结果图:
我尝试在回归图上绘制区间,但是lines函数根本不起作用,而matlines函数只是绘制了三条没有斜率的直线。
我的数据集来自包 "faraway"。
y = salmonella$colonies
x = salmonella$dose
salmonella_fit = lm(y ~ x)
summary(salmonella_fit)
newdose = data.frame( x= c(20, 40, 60, 80, 120, 150, 180, 300,500))
conf_interval = predict(salmonella_fit, newdose, interval = "confidence", level = 0.95)
xval = c(20, 40, 60, 80, 120, 150, 180, 300, 500)
plot(conf_interval[ ,1] ~ xval, xlab = "newdose", ylab ="colonies", main = "Regression")
abline(salmonella_fit, col="lightblue")
lines(conf_interval[,2] ~ xval, col ="blue", type = "l")
lines(conf_interval[,3] ~ xval, col ="blue", type = "l")
matlines(conf_interval, xval, col=c("lightblue","blue","blue"))
这是我得到的:
我已经在网站上找遍了所有的解释,但还是看不懂台词,希望你能告诉我我的代码有什么问题。
非常感谢。
lines
函数将 x 坐标指定为第一个向量,将 y 坐标指定为第二个向量。
在您的情况下,整个绘图代码可能如下所示:
plot(conf_interval[ ,1] ~ xval, xlab = "newdose", ylab ="colonies", main = "Regression", ylim=range(conf_interval))
abline(salmonella_fit, col="lightblue")
lines(xval, conf_interval[,2], col="blue")
lines(xval, conf_interval[,3], col="blue")
请注意,我还必须添加 ylim=range(conf_interval)
以便扩展 y 轴的范围。否则置信区间将超出绘图区域。
这是结果图: