lapplyを使って、複数の母数の組み合わせで関数の曲線をggplot2で描く

R
作者

伊東宏樹

公開

2026年1月19日

ggplot2でgeom_functionを使って関数の曲線を描画するとき、複数の母数の組み合わせをlapplyで組み込む方法です。

ggplot2を使用します。

library(ggplot2)

設定

正規分布の母数(平均\(\mu\)と標準偏差\(\sigma\))の組み合わせを以下のように3種類設定します。

  • \(\mu = 0, \sigma = 1\)
  • \(\mu = -1, \sigma = 0.5\)
  • \(\mu = 2, \sigma = 2\)
df <- data.frame(mu = c(0, -1, 1), sigma = c(1, 0.5, 2))

描画

描画します。lapply関数でgeom_functionのレイヤーのリストを返しています。aes関数のcolour引数で凡例に示す文字列を設定しています。

ggplot(data.frame(x = c(-5, 5)), aes(x = x)) +
  lapply(1:nrow(df), function(i) {
    geom_function(
      fun = dnorm,
      aes(colour = paste0("μ=", df$mu[i], ", σ=", df$sigma[i])),
      args = list(mean = df$mu[i], sd = df$sigma[i])
    )
  }) +
  labs(x = "x", y = "Probability density", colour = "Parameters") +
  theme_bw() +
  theme(legend.position = c(0.95, 0.95),
        legend.justification = c(1, 1))