この質問のフォローアップとして、私が次のようなことをしたとします。
p <- ggplot(mtcars, aes(mpg)) + geom_histogram(aes(y = ..count..)) + facet_wrap(~am)
r <- print(p)
2行目では、印刷メソッドを呼び出しています。これは、プロットオブジェクトにレイヤーを追加する前に、プログラムで戻り値を検査できるようにするためです。
私の質問:その時点でプロットの描画を抑制する方法はありますか?
内部を見ると、調べたい情報に応じて、ggplot2:::print.ggplot
おそらく使用したいのはまたはのいずれggplot_build()
かであることがわかります。ggplot_gtable()
ggplot_build
ggplot2のprintメソッドによって目に見えない形で返されるデータオブジェクトを返すので、おそらくそれがあなたが求めているものです。ggplot_gtable
グロブ自体を返します。これにより、グリッドグラフィックスオブジェクト自体を直接変更できます。
どうですか:
#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')