2016-06-06 5 views
9

Я знаю, что этот вопрос задан раньше, но решения, похоже, не работают для меня.Добавить легенду в geom_vline

Что я хочу сделать, это представить мои медианные, средние, верхние и нижние квантилы на гистограмме разных цветов, а затем добавить легенду в сюжет. Это то, что у меня есть до сих пор, и я попытался использовать scale_color_manual и scale_color_identity, чтобы дать мне легенду. Кажется, что ничего не работает.

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

ответ

11

Вам необходимо отобразить цвет внутри 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

Если это не работает для вас: Для меня это работало, добавляя «show_guide = TRUE "к одной из команд geom_vline. – panuffel