lemon パッケージで facet した ggplot2 に軸を表示する

カテゴリ: R

lemon パッケージを使うと facet した全ての図に軸の目盛 (ticks) と labels を表示できる.

g <- ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
  geom_point()
g + facet_rep_wrap(~ Species, repeat.tick.labels = TRUE)

facet_wrap() の拡張として facet_rep_wrap()facet_grid() の拡張として facet_rep_grid が用意されている.lemon パッケージによる拡張は,既定では目盛 (ticks) のみを各パネルに表示するが,repeat.tick.labels = TRUE にすると label も表示してくれる.

facet_wrap()scales = 'free' であれば全ての図の軸を表示してくれる. facet_wrap() が威力を発揮する scales 引数が 'fixed''free_x''free_y' な場面だろう.

facet_grid() の場合は scales 引数の値に寄らず,軸は端の図にしか表示されない.従って,任意の scales に対し facet_rep_grid() が威力を発揮する.

メリットは以下の通り.

値が読み易い

ggplot2 パッケージによる通常の facet では以下のように,端にしか軸を表示しないため,一部の図が目盛から遠く,値を読み難い問題があった. lemon パッケージを使えばこの問題から解放される.

g + facet_wrap(~ Species)

パネル内に目盛線を引かないテーマとの相性が良い

例えば theme_classic で facet すると,以下のように,facet 間の境界が不明瞭になる.

g + 
  facet_wrap(~ Species) + 
  theme_classic()

lemon パッケージを使えばこの通り

g + 
  facet_rep_wrap(~ Species, repeat.tick.labels = TRUE) + 
  theme_classic()

Enjoy!