我想使用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中,函数通常只生成他们评估的最后一件事,但我想更好地理解这个过程并了解任何可能的解决方法。
思想?
答案 0 :(得分:26)
基于 grid 的图形函数在lattice和ggplot2中创建一个图形对象,但不显示它。图形对象的print()
方法产生实际显示,即
print(qplot(x, y))
解决了这个问题。
请参阅R FAQ 7.22。