ggplot2でfacet_gridやfacet_wrapを使ってグラフを分割描画した際に、各グラフについているラベル(strip)のテキストは、何もしなければ分割に用いたグループ名が自動的に入る。
例:
ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) + geom_point() + facet_grid(.~Species)
このラベル部分はlabeller functionという関数で制御されていて、標準でいくつかの関数が用意されている(help(labellers)を参照のこと)。
これをマニュアルで設定するためには、これまではlabeller functionを自分で書く必要があった(cf. r - ggplot: How to change facet labels? - Stack Overflow)。定義したlabeller functionをfacet_gridの引数labellerに与えることで目的が達成される。
例:
# これまでのlabeller functionの作り方 labeli <- function(variable, value){ names_li <- list("setosa" = "せとさ", "versicolor" = "ばーじからー", "virginica" = "ばーじにか") return(names_li[value]) } theme_set(theme_gray(base_family="HiraKakuProN-W3")) ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) + geom_point() + facet_grid(.~Species, labeller = labeli)
ggplot2のバージョンアップにともなって、labeller functionをもう少し分かりやすく書ける関数、as_labellerが追加された。
labeli <- as_labeller(c(`setosa` = "せとさ", `versicolor` = "ばーじからー", `virginica` = "ばーじにか"))
出来上がったlabeller functionの使い方に変更は無い。