【R備忘録】ggplotでfacetのラベルの方向や場所を変更する

ggplotで次のように縦並びのfacetグラフを作りたいとします。

library(ggplot2)
ggplot(diamonds, aes(carat, ..density..)) +
  geom_histogram(bins = 20) +
  facet_wrap(~cut, ncol = 1) +
  coord_flip()
ggsave("diamonds_cutcarat_facet.png", width = 5, height = 2.75)
ダイヤモンドのカラットのヒストグラムをカット別にプロット。縦並び

見るに値しないこのグラフのfacetのラベル(FairとかGoodとか)をサイドに置きたいと思うのは自然でしょう。
そのためにはfacet_wrapのオプションのstrip.positionを使います。

ggplot(diamonds, aes(carat, ..density..)) +
  geom_histogram(bins = 20) +
  facet_wrap(~cut, ncol = 1, strip.position = "right") +
  coord_flip()
ggsave("diamonds_cutcarat_facet_right.png", width = 5, height = 2.75)
ダイヤモンドのカラットのヒストグラムをカット別にプロット。縦並びでラベルの位置を横に

そうすると今度はラベルを配置する隙間が少なくてグラフの大きさ次第ではうまくラベルが表示できません。
これを回避するためにはラベルの方向を変更したい。
これはthemestrip.text.yオプションを使って下記のように設定することができます。

ggplot(diamonds, aes(carat, ..density..)) +
   geom_histogram(bins = 20, color = "black") +
   facet_wrap(~cut, ncol = 1, strip.position = "right") +
   coord_flip() +
   scale_x_continuous(minor_breaks = NULL) +
   theme(strip.text.y = element_text(angle = 0))
ダイヤモンドのカラットのヒストグラムをカット別にプロット。縦並びでラベルの位置を横に、方向も横に

これでとりあえずは他人に見せることが可能なグラフになりました。

コメントを残す