Open1

Rで正規分布をプロットする+α

yuuyuu
norma_area <- function(x_min, x_max) {
  
  norm_range <- seq(-4, 4, length.out = 1000)
  x_range <- seq(x_min, x_max, length.out = 1000)
  y_range <- dnorm(x_range, mean = 0, sd = 1)
  
  plot(
    norm_range, dnorm(norm_range, mean = 0, sd = 1),
    type = "l", xlab = "", ylab = "Pr"
    )
  lines(x = x_min, y = dnorm(x_min, mean = 0, sd = 1), type = "h")
  lines(x = x_max, y = dnorm(x_max, mean = 0, sd = 1), type = "h")
  polygon(
    c(x_min, x_range, x_max),
    c(0, y_range, 0),
    col = "gray"
  )
  area <- pnorm(x_max, mean = 0, sd = 1) - pnorm(x_min, mean = 0, sd = 1)
  text(mean(c(x_min, x_max)), 0.05, paste0(round(area * 100, 1), "%"), adj = 0.5)
  
}

norma_area(0, 1)
norma_area(0, 2)