2015-11-17 4 views
2

Я знаю, что вопрос был задан ранее. ggplot legend - scale_colour_manual not workingлегенда ggplot не работает с scale_colour_manual

Но вопрос включает в себя несколько сложный набор данных, чем то, что у меня здесь, и ответ предлагает реструктурировать данные, а затем работает с реструктурированными данными. Но проблема сохраняется даже с простыми данными, как у меня ниже, и я не могу ее решить. Поэтому, пожалуйста, не отмечайте это как дубликат.

Проблема: при использовании scale_colour_manual в ggplot2 легенда не отображается.

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")) 

Любая помощь приветствуется.

+1

'geom_vline' в настоящее время по умолчанию для' show_guide = false', так что если вы хотите, легенду вам нужно изменить это. – aosmith

ответ

5

Вы должны использовать show_guide=TRUE в geom_vline (по умолчанию 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

+0

А, спасибо! Это так просто. Интересно, почему другой вопрос требует участия. –

+0

и использовать 'mean (a)' inside 'aes()' вместо 'mean (p $ a)' – rcs

Смежные вопросы