1
假設我正在做一個y ~ x
的線性模型。我得到的殘差圖與例如在R的plot.lm中設置ylim殘差plot
plot(lm(y ~ x, data.frame(x=c(1,2,3), y=c(4,6,9))), 1)
如何設置此陰謀的ylim? (例如,爲此函數提供ylim = c(-1,1)不起作用)。
假設我正在做一個y ~ x
的線性模型。我得到的殘差圖與例如在R的plot.lm中設置ylim殘差plot
plot(lm(y ~ x, data.frame(x=c(1,2,3), y=c(4,6,9))), 1)
如何設置此陰謀的ylim? (例如,爲此函數提供ylim = c(-1,1)不起作用)。
ylim
被硬編碼到函數stats:::plot.lm
中(即,用於類「lm」的對象的s3 plot
方法)。該功能不會從統計數據包中導出。爲了解決這個問題,你可以複製的功能,並修改它:
plotlm <- stats:::plot.lm
可以使用fix("plotlm")
編輯。向函數定義添加一個ylim
形式參數,然後找到代碼的相關部分。你應該改變:
if (show[1L]) {
ylim <- range(r, na.rm = TRUE)
if (id.n > 0)
ylim <- extendrange(r = ylim, f = 0.08)
dev.hold()
plot(yh, r, xlab = l.fit, ylab = "Residuals", main = main,
ylim = ylim, type = "n", ...)
# ...
到:
if (show[1L]) {
if(missing(ylim)) {
ylim <- range(r, na.rm = TRUE)
if (id.n > 0)
ylim <- extendrange(r = ylim, f = 0.08)
}
dev.hold()
plot(yh, r, xlab = l.fit, ylab = "Residuals", main = main,
ylim = ylim, type = "n", ...)
# ...
然後你就可以把這種新的功能:
plotlm(lm(y ~ x, data.frame(x=c(1,2,3), y=c(4,6,9))), 1, ylim = c(-1,1))
得到期望的結果: