如何在R中无需控制台提示单独生成回归分析的四张图
如何在R中单独显示回归分析的四张图且无控制台提示?
你碰到的这个问题其实是plot.lm()(对线性回归对象调用plot()时触发的方法)的默认行为导致的:默认情况下它会按顺序生成4张诊断图,并且每次都需要你按回车才能切换到下一张,确实挺影响效率的。你之前尝试的几种方法没成功,主要是没抓住plot.lm()自身参数的关键点,我来给你拆解一下:
为什么你之前的方法没生效?
- 调整
par(ask=...)不管用:因为plot.lm()有自己的ask参数,会覆盖全局的par设置,单独改par不会起作用 plot(rg, ask=FALSE)在单面板图形设备中,还是会按顺序生成图,但并没有实现“每张单独显示”的需求par(mfrow=c(2,2))是把四张图合并到一个画布,不符合你要单独显示的要求- 用
png()保存时只得到一张:因为在非交互的图形设备中,plot.lm()默认只会生成第一张图就停止了,不会自动生成后续的
正确的解决方案
要单独显示每张图且没有控制台提示,直接用plot.lm()的which参数指定要生成的图的序号就可以了,每张图独立生成,完全不需要回车:
# 生成第1张:残差 vs 拟合值图 plot(rg, which = 1) # 生成第2张:正态Q-Q图 plot(rg, which = 2) # 生成第3张:标准化残差绝对值 vs 拟合值图 plot(rg, which = 3) # 生成第4张:标准化残差 vs 杠杆值图 plot(rg, which = 4)
额外:如果需要单独保存每张图
要是你想把每张图都单独保存成文件,只需要为每张图单独打开和关闭图形设备就行:
# 保存残差拟合图 png('residual_fit.png', units="in", width=13, height=7, res=300) plot(rg, which = 1) dev.off() # 保存Q-Q图 png('qq_plot.png', units="in", width=13, height=7, res=300) plot(rg, which = 2) dev.off() # 继续保存剩下的两张图...
内容的提问来源于stack exchange,提问作者bbiasi
相关产品推荐
相关产品推荐

