Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ggplot legend not working with scale_colour_manual

Tags:

r

legend

ggplot2

I know an identical question has been asked earlier. ggplot legend - scale_colour_manual not working

But the question involves a somewhat complicated dataset than what I have here and the answer suggests restructuring data and then works with restructured data. But the problem persists even with simple data as I have below and I can't solve it. So please don't mark it as duplicate.

The problem: when using scale_colour_manual in ggplot2, the legend is not showing.

p <- data.frame(a = runif(10, 1, 2))
ggplot(data=p, aes(x=a)) +
  geom_histogram() +
  geom_vline(aes(xintercept=mean(p$a), colour="mea")) +
  geom_vline(aes(xintercept=median(p$a), colour="med")) +
  scale_colour_manual(name="Statistic",
                      values=c("med"= "red", "mea"="green"))

Any help is appreciated.

like image 848
Mr K Avatar asked Nov 17 '15 22:11

Mr K


1 Answers

You have to use show_guide=TRUE in geom_vline (defaults to FALSE):

p <- data.frame(a = runif(10, 1, 2))
ggplot(data=p, aes(x=a)) +
  geom_histogram() +
  geom_vline(aes(xintercept=mean(a), colour="mea"), show_guide=TRUE) +
  geom_vline(aes(xintercept=median(a), colour="med"), show_guide=TRUE) +
  scale_colour_manual(name="Statistic",
                      values=c("med"= "red", "mea"="green"))

plot

like image 156
rcs Avatar answered Oct 01 '22 13:10

rcs