Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I add a mean line to each panel is a facet_grid() object? [duplicate]

Tags:

r

facet-grid

I have a sample dataset here:

data = data.frame(Region = c(rep("Upper",50), rep("Lower", 50)),
                  Weight = c(rnorm(50, 2, 1), rnorm(50, 4, 1)))

I want to create a histogram in ggplot which the mean of each histogram overlaid with a red line.

ggplot(data=data, aes(x=Weight))+geom_histogram()+geom_vline(xintercept=mean(Weight), col="red")+facet_grid(Region~.)
like image 990
Jade131621 Avatar asked Nov 28 '25 12:11

Jade131621


1 Answers

Group your data by Region an calculate the mean for each respective Weight.

data <- data %>% group_by(Region) %>%  mutate(mean = mean(Weight))

ggplot(data, aes(x = Weight)) +
  geom_histogram() +
  facet_grid(Region~.) +
  geom_vline(aes(xintercept = mean, group = Region), colour = 'red')

enter image description here

like image 104
Gnueghoidune Avatar answered Dec 01 '25 04:12

Gnueghoidune



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!