2017-03-12 45 views
2

すべて - この正確なトピックについては他にもいくつか質問がありますが、私が直面している問題に対処するものはありません。ここにコードの簡単なスニペットがあります。誰もがここに問題が何かアドバイスできますか?gListで許可されているgrobsだけ

> grid.arrange(plot(rnorm(1000)),hist(rnorm(1000)), nrow=2, ncol=1) 
Error in gList(list(wrapvp = list(x = 0.5, y = 0.5, width = 1, height = 1,  : 
  only 'grobs' allowed in "gList" 
+1

@ John Colemanが正しいです、ベースグラフィックスは 'grobs'ではありません。本当に 'grid.arrange'を使いたいのであれば、この質問で' grab_grob'関数を使うようなことを試みることができます。 http://stackoverflow.com/questions/33826249/force-a-regular-plot-object-into-a-grob-for-use-in-grid-arrange –

答えて

2

問題は、それゆえ、彼らがgrobs(「グロブ」は「グリッドグラフィカルオブジェクト」の幾分奇妙な頭字語である)ではない、plot()hist()がベースグラフィックではなく、グリッド又はggplotグラフィックであることです。同等のグリッドプロットを見つけたり、プロットを積み重ねるための基本グラフィックスアプローチを使用することができます。あなたは後者を行うだろう

方法:

> par(mfrow = c(2, 1)) 
> plot(rnorm(1000)) 
> hist(rnorm(1000)) #are you sure you want to make a hist of 1000 *different* random numbers? 
> par(mfrow = c(1, 1)) #reset this parameter 

出力:

enter image description here

あなたはまたlayoutの使用を検討できます。詳細は?layoutを入力してください。

+0

ありがとう@ジョンコールマン!最善の説明。そして、ノームを使って私の意図は説明することだけだった。私はgrid.arrangeを使って作業していますが、qplotを使ってヒストグラムを描画しています。それは今扱います! – skafetaur

+0

@skafetaur私はそれが単なる例であると考えました。私は統計的なクラス(私は貿易で数学の教師です)を教えるときに、実際にはかなり似たような例を使用しましたが、同じ乱数のセットが積み重ねられたプロットでさまざまな方法で表示されるので、私はRのグラフィック能力に感謝しますが、時々困惑するさまざまな互換性のないパッケージに分割される方法を見つけます。純粋なgrid.arrangeソリューションを見つけることがおそらく最も良いですが、プロットの行列を作る基本的なグラフィックの方法のいくつかについて知っておくとよいでしょう。 –

関連する問題