[解決済み】ggplot2によるサイド・バイ・サイド・プロット
質問
を使用して、2つのプロットを並べて配置したいのですが。
ggplot2 パッケージ
つまり
par(mfrow=c(1,2))
.
例えば、次の2つのプロットを同じ縮尺で並べて表示させたい。
x <- rnorm(100)
eps <- rnorm(100,0,.2)
qplot(x,3*x+eps)
qplot(x,2*x+eps)
同じdata.frameに入れる必要があるのでしょうか?
qplot(displ, hwy, data=mpg, facets = . ~ year) + geom_smooth()
解決方法は?
任意のggplotを横に並べて表示する(またはグリッド上にn個のプロットを表示する)
機能
grid.arrange()
の中にある
gridExtra
パッケージは、複数のプロットを結合します。これは、2つのプロットを横に並べる方法です。
require(gridExtra)
plot1 <- qplot(1)
plot2 <- qplot(1)
grid.arrange(plot1, plot2, ncol=2)
これは、2つのプロットが同じデータに基づいていない場合に便利です。例えば、reshape()を使用せずに異なる変数をプロットしたい場合などです。
これは、副作用として出力をプロットします。副作用をファイルに出力するには、デバイスドライバを指定します(例えば
pdf
,
png
など)、例えば
pdf("foo.pdf")
grid.arrange(plot1, plot2)
dev.off()
または
arrangeGrob()
と組み合わせて
ggsave()
,
ggsave("foo.pdf", arrangeGrob(plot1, plot2))
を使用して2つの異なるプロットを作成することと同じです。
par(mfrow = c(1,2))
. これはデータの配置の時間を節約するだけでなく、2つの異なるプロットが必要な場合にも必要です。
付録 ファセットの使用
ファセットは、異なるグループに対して同様のプロットを作成するのに便利です。これは以下の多くの回答で指摘されていますが、上記のプロットに相当する例でこの方法を強調したいと思います。
mydata <- data.frame(myGroup = c('a', 'b'), myX = c(1,1))
qplot(data = mydata,
x = myX,
facets = ~myGroup)
ggplot(data = mydata) +
geom_bar(aes(myX)) +
facet_wrap(~myGroup)
更新情報
その
plot_grid
関数で
cowplot
の代わりとして、チェックする価値があります。
grid.arrange
. を参照してください。
答え
以下の@claus-wilkeによるもの、および
このヴィネット
に基づいて、プロットの位置や大きさをより細かく制御することができます。
このヴィネット
.
関連
-
[解決済み】 lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) のエラー : 'y' の NA/NaN/Inf, あらゆる方法を試したが解決しなかった。
-
[解決済み】Rでのデータ操作。'X'はアトミックでなければならない
-
[解決済み】各グループの上位3要素を計算する際に「数値型、論理型、複合型でのみ可能な演算」を回避する方法
-
[解決済み】R4DSのエラー比較(1)は、アトミック型とリスト型でのみ可能です
-
[解決済み] ggplot2 の軸ラベルを回転させ、間隔を空ける
-
[解決済み] ggplot2 Rプロットで軸の制限を設定するには?
-
[解決済み] ggplot2 の棒グラフで棒を並べる
-
[解決済み] ggplot2 を使って 2 つの変数を同じグラフに線でプロットする
-
[解決済み] [Solved] data.frameで全てまたは一部のNA(欠損値)を含む行を削除する。
-
[解決済み】2つのy軸を左右に持ち、異なるスケールを持つggplot
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】model.frame.defaultでのエラー:変数の長さが異なる
-
[解決済み】数学関数への非数値引数
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み】添え字付き代入でNAを使用することはできません
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】rbind エラー。"名前が以前の名前と一致しない"
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み】R ggplot2 で scale_x_discrete を使用する。
-
[解決済み】bstTreeの予測値の混乱行列、エラー:'The data must contain some levels that overlap reference'.
-
[解決済み】長いオブジェクトの長さは、短いオブジェクトの長さの倍数ではない?[重複]。