library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
theme_set(theme_bw())
Normal curve with base graphics
curve(dnorm(x, mean = 0, sd = 1), -4, 4)
Normal curve with ggplot
ggplot(data = data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1)) +
theme(axis.title.y=element_blank()) +
scale_y_continuous(breaks = NULL)
Shade the regions from -1.96 to +1.96
x <- seq(from = -4, to = 4, by = .01)
normal_df <- data.frame(x = x, y = dnorm(x, mean = 0, sd = 1))
ggplot(data = data.frame(x = c(-4, 4)), aes(x = x)) +
geom_area(data = filter(normal_df, x >= -1.96 & x <= 1.96), aes(x = x, y = y), fill = "lightblue") +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1)) +
theme(axis.title.y=element_blank()) +
scale_y_continuous(breaks = NULL)