作为this question的后续行动,假设我做了类似的事情:
p <- ggplot(mtcars, aes(mpg)) + geom_histogram(aes(y = ..count..)) + facet_wrap(~am)
r <- print(p)
在第二行中,我正在调用print方法,以便在向绘图对象添加其他图层之前,我可以以编程方式检查其返回值。
我的问题:有没有办法在那时禁止绘制情节?
答案 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')