web-dev-qa-db-ja.com

Scales = "free"はfacet_wrapでは機能しますが、facet_gridでは機能しません

入力が同じであるにもかかわらず、facet_grid()facet_wrap()の出力が異なる理由を理解しようとしています。

facet_grid

_ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_grid(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()
_

enter image description here

facet_wrap

_ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_wrap(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()
_

enter image description here

引数_scales = "free"_は、facet_grid()およびfacet_wrap()と同じ動作をしません。それを説明できるのは何ですか?

18
iatowks

このリンク を参照:

_facet_grid_は、水平または垂直方向に変化する1つまたは2つの変数によってデータをファセットに分割し、_facet_wrap_は、ファセットを隣り合わせに配置して、特定の数の列または行で折り返します。つまり、_facet_wrap_は水平方向の寸法のみを持ちます。

したがって、そのリンクの例を使用すると、sp + facet_grid(. ~ sex)sp + facet_grid( ~ sex)と同じように動作します。あなたの場合、facet_grid(. ~ referencia)facet_wrap( ~ referencia)は同じプロットを生成するはずです。

2次元以上のファセットの場合、_facet_grid_はパラメーター_(vertical ~ horizontal)_に基づいてプロットのグリッドを生成します。一方、_facet_wrap_は、プロットを水平に積み重ねるだけです。ユーザーは、列または行の数を指定してレイアウトを設定できます。

これで、_scales = "free"_引数が追加されても、_facet_grid_のファセットはグリッドによって制限されるため、同じ行のプロットに異なるy軸を設定することはできません。同様に、各列には1つのx軸しかありません。ただし、_facet_wrap_を使用すると、各プロットは独立して表示されるため、x軸とy軸を「解放」できます。

私の意見では、_facet_grid_は、同じ軸スケールを設定することで達成できる、カテゴリ内のプロットを相対的に比較する場合に役立ちます。一方、_facet_wrap_は、互いに独立したプロットの場合に役立ちます。

31
zyurnaidi