从R函数中生成多个图形

时间:2010-03-30 17:40:07

标签: r ggplot2 r-faq

我想使用ggplot图形从R中的函数中生成几个图形窗口......

testf <- function(a, b) {
  devAskNewPage(TRUE)
  qplot(a, b);
  # grid.newpage(recording = TRUE)
  dev.new()
  qplot(a, a+a);
  # grid.newpage(recording = TRUE)
  dev.new()
  qplot(b, b+b);
}

library(ggplot2)

x <- rnorm(50)
y <- rnorm(50)
testf(x, y)

然而,dev.new()和grid.newpage()似乎都没有刷新前面的情节。

我知道,在R中,函数通常只生成他们评估的最后一件事,但我想更好地理解这个过程并了解任何可能的解决方法。

思想?

1 个答案:

答案 0 :(得分:26)

基于 grid 的图形函数在lattice和ggplot2中创建一个图形对象,但不显示它。图形对象的print()方法产生实际显示,即

print(qplot(x, y))

解决了这个问题。

请参阅R FAQ 7.22