ggplot2での作図時に困ったことの備忘録として。コードに誤りがあればご指摘ください。
y軸の余白を削除する
# import library ----
library(tidyverse)
# sample ----------
fig <-
iris %>%
group_by(Species) %>%
summarise(mean_splen = mean(Sepal.Length))
ggplot(data = fig) +
geom_bar(mapping = aes(x = Species, y = mean_splen), stat = "identity") +
scale_y_continuous(expand = expansion(mult = c(0, 0.1)))
標準ではy軸の0の下に余白があるが、scale_y_continuous()のexpandでグラフの下側、上側の余白の大きさを調整できる。
scale_y_continuous(expand = expansion(mult = c(下側の余白設定, 上側の余白設定))
連続量の場合、グラフ下端と軸の間には6%分の余白が設定されているよう。
factor型のグラフ出力順を制御する
# import library ----
library(tidyverse)
# sample ----------
fig <-
iris %>%
group_by(Species) %>%
summarise(mean_splen = mean(Sepal.Length))
ggplot(data = fig) +
geom_bar(mapping = aes(x = fct_reorder(Species, mean_splen, .desc = TRUE),
y = mean_splen),
stat = "identity")
factor型をグラフに出力するとlevels順の出力になる。
並び順の変更にはlevelsの再設定が必要だが、factor型の操作には{forcats}パッケージの利用が便利。
よく使いそうなものは以下。
- fct_reorder(): 他の変数の値を用いてlevelsを変更できる
- fct_inorder(): データセット内の出現順でlevelsを変更できる
- fct_freq(): データセット内の頻度順でlevelsを変更できる
(追記)きちんとまとまった資料がありました。
Reorder a variable with ggplot2
This post describes how to reorder a variable in a ggplot2 chart. Several methods are suggested, always providing exampl...
コメント