35

我想使用 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 中,函数通常只产生他们评估的最后一个东西,但我想更好地理解这个过程并了解任何可能的解决方法。

想法?

4

1 回答 1

34

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

print(qplot(x, y))

解决问题。

请参阅R 常见问题解答 7.22

于 2010-03-30T19:05:54.653 回答