我试图将两个回归摘要与一个居中的标题并排绘制。每个回归摘要都由plot.rqs()
生成,相当于一组9个图。
我已经尝试过使用par(mfrow=c(1,2))
,但正如我从Paul Murrel(2006)的书中所学到的,像plot.rqs()
或pairs()
等高级函数在绘制之前保存了图形状态。然后在完成后恢复图形状态,以便对par()
或layout()
的先发制人电话无法帮助我。 plot.rqs()
也没有“面板”功能。
似乎实现结果的唯一方法是修改plot.rqs()
函数以获取新函数,比如modified.plot.rqs()
,然后运行
par(mfrow=c(1,2))
modified.plot.rqs(summary(fit1))
modified.plot.rqs(summary(fit2))
par(mfrow=c(1,1))
从那里我可以找出如何使用layout()
为图像添加整体标题。有谁知道如何创建可以这种方式使用的modified.plot.rqs()
函数?
由于
答案 0 :(得分:3)
您可以按如下方式修补功能:
使用dput
和capture.output
进行检索
函数的代码,作为字符串;
根据需要更改它(在这里,我只是替换par
的每一次出现
功能无效);
最后评估结果以产生新的功能。
library(quantreg)
a <- capture.output(dput(plot.summary.rqs))
b <- gsub("^\\s*par\\(", "nop(", a)
nop <- function(...) {}
my.plot.summary.rqs <- eval(parse(text=b))
答案 1 :(得分:3)
首先我们生成一个示例对象fm
。然后,我们复制plot.rqs
并在副本上使用trace
以在顶部插入par <- list
,从而有效地消除函数中par
的任何使用。然后我们对plot.summary.rqs
做同样的事情。最后,我们使用自己的par
:
library(quantreg)
example(plot.rqs) # fm to use in example
# plot.rqs
plot.rqs <- quantreg::plot.rqs
trace("plot.rqs", quote(par <- list), print = FALSE)
# plot.summary.rqs
plot.summary.rqs <- quantreg::plot.summary.rqs
trace("plot.summary.rqs", quote(par <- list), print = FALSE)
# test it out
op <- par(mfrow = c(2, 2))
plot(summary(fm))
plot(fm)
title("My Plots", outer = TRUE, line = -1)
par(op)
编辑:添加plot.summary.rqs
。