2013-12-08 13 views
37

私は両方の機能についてggplot2のドキュメントを読んできました。私は違いが何であり、それぞれの機能(facet_wrap()facet_grid())を使用するための正しい状況になるのだろうかと思っていました。ggplot2のfacet_wrap()とfacet_grid()の違いは何ですか?

library(ggplot2) 

p <- qplot(displ, hwy, data = mpg) 
p + facet_wrap(~ cyl) 

p + facet_grid(~ cyl) 

私はこの小さな例を出発点として提供します。違いはラップされているように見えますが、プロットはより自律的になり、グリッドはすべて1つのプロットを作成します。

+5

あなたが認識していない場合は、hadleyに電子版のドキュメントがあります:http://docs.ggplot2.org/current/これらは、2つの機能の違いを確認するのに役立ちます。 –

答えて

24

以下の答えは、facet_grid()またはfacet_wrap()に2つの引数がある場合を示しています。

facet_grid(x ~ y)プロットが空でも、x*yのプロットが表示されます。 例:

library(ggplot2) 
g <- ggplot(mpg, aes(displ, hwy)) 

4つのdistinct cyl値と7つの異なるクラス値があります。

g + geom_point(alpha=1/3) + facet_grid(cyl~class) 

4つのdistinct cyl値と7つの異なるクラス値があります。 上記の表示は、空であっても4 * 7 = 28のプロットを表示します(class = "midsize"の行には対応するcyl = "5"の値がないようなクラスがあります) facet_wrap(x ~ y)一方、実際の値を持つプロットのみを表示します。

g + geom_point(alpha=1/3) + facet_wrap(cyl~class) 

ここでは、cylとクラスの組み合わせごとに1つずつ、19個のプロットが表示されます。

20

facet_wrap(...)文字列を1つの変数に基づいて異なるフレーム(ファセット)にまとめて表します。ggplotsあなたはまた、各ファセット内のグループに第三の変数を使用することができ

p + facet_grid(cyl~class) 

qplot(displ, hwy, data=mpg,color=factor(year)) + facet_grid(cyl~class) 

は改善を示している(またはその欠如)の変位対HWY走行距離に#cylindersによってfacet_grid(...)は、2つの変数を取ることができますクラス。

+4

'facet_wrap'は2つの変数も取ることができます。 – marbel

4

単一変数プロットの場合、facet_grid()またはfacet_wrap()のいずれかを使用できます。

facet_wrap(~variable)は、レベル数variableのプロットの対称行列を返します。

facet_grid(.~variable)は、水平に分散されたレベルvariableに等しいファセットを返します。

facet_grid(variable.~)は、垂直に分布されたレベルvariableに等しいファセットを返します。

関連する問題