Как добавить легенду к geom_vline на фасетных гистограммах?

Я построил 3 гистограммы, используя вид фасетов, и добавил vlines для среднего и медианного значения.

введите описание изображения здесь

Я хотел бы добавить легенду, чтобы указать, какая vline относится к какой статистике.

ggplot(x, aes(x=earnw)) + geom_histogram(binwidth=100, colour="black", fill="white")  +
facet_grid(tuyear ~ .)  +
 geom_vline(data=a, aes(xintercept=earnw.mean), linetype="dashed", size=1,   color="mean") +
 geom_vline(data=b, aes(xintercept=earnw.med), linetype="dashed", size=1, color="median") +
 scale_color_manual(name = "statistics", values = c("mean" <- "red", "median" <- "blue")) +
 labs(title="Histogram for Weekly Earnings of Respondents") + 
 labs(x="Weekly Earnings of Respondents", y="Count") +
 scale_x_continuous(breaks=seq(0,3000,200),lim=c(0,3000)) 

Следующий код возвращает ошибку:

Ошибка в grDevices :: col2rgb (color, TRUE): недопустимое имя цвета 'mean'


person trzeciak.p    schedule 23.04.2017    source источник
comment
scale_color_manual требует ввода цветов для values = использования меток для описательных атрибутов   -  person timfaber    schedule 23.04.2017


Ответы (1)


Есть несколько способов сделать это. Я бы резюмировал набор данных, а затем передал бы это резюме geom_vline. Здесь с использованием набора данных диафрагмы

iris.summary <- iris %>% 
  group_by(Species) %>% 
  summarise(mean.SL = mean(Sepal.Length), med.SL = median(Sepal.Length)) %>% 
  gather(key = stat, value = value, -Species)

ggplot(iris, aes(x = Sepal.Length)) + 
  geom_histogram() + 
  facet_wrap(~ Species) +
  geom_vline(data = iris.summary, aes(xintercept = value, colour = stat), linetype = "dashed")
person Richard Telford    schedule 23.04.2017