Add a legend for multiple geom_vline in facet_wrap

234 Views Asked by At

I am trying to add a legend for multiple geom_vlines in a facet_wrap, but I can't manage to keep the colors in the graphs. I have added aes on each vline, but they appear grey.

ggp +
  geom_vline (aes(xintercept = median(overall_vector), color = "red"), linetype = "dashed") +
  geom_vline (aes(xintercept = quantile(overall_vector,0.80), color = "green"), linetype = "dashed") + 
  geom_vline (aes(xintercept = quantile(overall_vector,0.20), col = "orange"), linetype = "dashed") +
  scale_color_manual(name = "statistics", values = c(median = "red", "p 80" = "green", "p 20" = "orange"))

What I see

If I take out the aes it just doesn't show the legend. It happens the same if I keep aes on only the median vline

ggp +
  geom_vline (xintercept = median(overall_vector), color = "red", linetype = "dashed") +
  geom_vline (xintercept = quantile(overall_vector,0.80), color = "green", linetype = "dashed") + 
  geom_vline (xintercept = quantile(overall_vector,0.20), col = "orange", linetype = "dashed") +
  scale_color_manual(name = "statistics", values = c(median = "red", "p 80" = "green", "p 20" = "orange"))

Example 2

The legend only shows if I add aes to at least 1 vline, but that vline becomes grey.

ggp +
  geom_vline (xintercept = median(overall_vector), color = "red", linetype = "dashed") +
  geom_vline (xintercept = quantile(overall_vector,0.80), color = "green", linetype = "dashed") + 
  geom_vline (aes(xintercept = quantile(overall_vector,0.20), col = "orange"), linetype = "dashed") +
  scale_color_manual(name = "statistics", values = c(median = "red", "p 80" = "green", "p 20" = "orange"))

Example 3

Thank you!

0

There are 0 best solutions below