3

作为对这个问题的跟进,假设我做这样的事情:

p <- ggplot(mtcars, aes(mpg)) + geom_histogram(aes(y = ..count..)) + facet_wrap(~am)
r <- print(p)

在第二行中,我调用 print 方法,以便在向绘图对象添加其他图层之前以编程方式检查其返回值。

我的问题:有没有办法抑制此时绘制情节?

4

2 回答 2

4

如果你往里面看,ggplot2:::print.ggplot你会发现你可能想要使用的是ggplot_build()or ggplot_gtable(),这取决于你想要检查的信息。

ggplot_build返回 ggplot2 的 print 方法不可见地返回的数据对象,所以这可能就是您所追求的。ggplot_gtable返回 grobs 本身,这允许直接修改网格图形对象本身。

于 2012-10-11T15:52:31.323 回答
1

怎么样:

#Create a temporary plot file
png('TMP_PLOT')

#Inspect return value of plot

#When you're done
dev.off()
#Delete the plot you just generated
unlink('TMP_PLOT')
于 2012-10-11T15:14:32.917 回答