2016-06-06 14 views
9

Wiem, że to pytanie zostało zadane wcześniej, ale rozwiązania nie działają dla mnie.Dodaj legendę do geom_vline

Co chcę zrobić, to reprezentować moje średnie, średnie, górne i dolne kwantyle na histogramie w różnych kolorach, a następnie dodać legendę do fabuły. To jest to, co mam do tej pory i próbowałem użyć scale_color_manual i scale_color_identity, aby dać mi legendę. Nic nie działa.

quantile_1 <- quantile(sf$Unit.Sales, prob = 0.25) 
quantile_2 <- quantile(sf$Unit.Sales, prob = 0.75) 

ggplot(aes(x = Unit.Sales), data = sf) + 
    geom_histogram(color = 'black', fill = NA) + 
    geom_vline(aes(xintercept=median(Unit.Sales)), 
      color="blue", linetype="dashed", size=1) + 
    geom_vline(aes(xintercept=mean(Unit.Sales)), 
      color="red", linetype="dashed", size=1) + 
    geom_vline(aes(xintercept=quantile_1), color="yellow", linetype="dashed", size=1) 

resulting plot

Odpowiedz

11

trzeba odwzorować kolor wewnątrz aes:

ggplot(aes(x = Sepal.Length), data = iris) + 
    geom_histogram(color = 'black', fill = NA) + 
    geom_vline(aes(xintercept=median(iris$Sepal.Length), 
       color="median"), linetype="dashed", 
      size=1) + 
    geom_vline(aes(xintercept=mean(iris$Sepal.Length), 
       color="mean"), linetype="dashed", 
      size=1) + 
    scale_color_manual(name = "statistics", values = c(median = "blue", mean = "red")) 

resulting plot

+0

jeśli ten nie działa dla Ciebie: Dla mnie to działało dodając „show_guide = TRUE "do jednego z poleceń geom_vline. – panuffel