2013-04-22 6 views
7

この質問にはすでに回答がありますが、私が必要とするものを見つけることができない場合は謝罪してください。nrow = 1のときにgrid.arrangeによって生成される行の高さが変更される

Side by side plots

:私はそうのような側面によるプロット側を与える

grid.arrange(p1,p2,main="Title", ncol=2) 

:私は、私は次のようにgrid.arrangeを使用して、同じグリッドに組み合わせていますggplot2に2つのプロットを生産している

(すみませんが、誰かがそれを助けることができれば、私はポスト内に自分のイメージを表示する方法を理解できません!私はリンクを使って人々を悩ませたくありません。 )

このコードを変更してグラフを並べても、オブジェクトの長さ全体が伸びないようにするにはどうすればよいですか?私はそれらを正方形にしたい。

私は、「高さ」という引数を追加できますが、これが私の必要としているものなのかどうかは分かりません。

ありがとうございます!

+0

この問題の最も基本的な解決策は、例えば、「太っ」グラフィックスデバイスの窓にプロットすることです'dev.new(width = 10、height = 5)' – baptiste

答えて

7

また、そのようgrid.arrangeするheightswidths引数を使用して相対的な高さと幅を指定することができます。

grid.arrange(p1 , p2 , widths = unit(0.5, "npc") , heights=unit(0.5, "npc") , main="Title", ncol=2) 

enter image description here

+0

正確に私が欲しかったのは:) - 私はヘルプページの1つでこれを見ましたが、それは私には不明でした。 「npc」は何を表していますか? – Nicki

+0

@NicolaCook素晴らしい! npc =正規化された親座標 - 基本的にプロット領域の割合に似ているため、値の範囲は0〜1です。 –

4

あなたはプロットを作るためにggplot2を使用していると、その後一つの方法は次のようになりcoord_fixed()を使用して二次プロットを取得し、それらを配置します。これはcoord_fixed()で実現できます。ここで、yの値の範囲をxの値で除算することによって、ratio=が計算されます。

ratio.plot1<-abs(max(iris$Petal.Width)-min(iris$Petal.Width))/abs(max(iris$Petal.Length)-min(iris$Petal.Length)) 

ratio.plot2<-abs(max(iris$Sepal.Width)-min(iris$Sepal.Width))/abs(max(iris$Sepal.Length)-min(iris$Sepal.Length)) 

p1<-ggplot(iris,aes(Petal.Width,Petal.Length))+geom_point()+ 
    coord_fixed(ratio=ratio.plot1) 
p2<-ggplot(iris,aes(Sepal.Width,Sepal.Length))+geom_point()+ 
    coord_fixed(ratio=ratio.plot2) 
grid.arrange(p1,p2,main="Title",ncol=2) 

enter image description here

関連する問題