ggplot2:在调用print方法时禁止绘制绘图

时间:2012-10-11 14:57:40

标签: r printing ggplot2

作为this question的后续行动,假设我做了类似的事情:

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

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

我的问题:有没有办法在那时禁止绘制情节?

2 个答案:

答案 0 :(得分:4)

如果您查看ggplot2:::print.ggplot内部,您会发现您可能想要使用的内容是ggplot_build()ggplot_gtable(),具体取决于您要检查的信息。

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

答案 1 :(得分: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')