Легенда для перекрытия линейных участков - PullRequest
0 голосов
/ 04 апреля 2020

Я перекрываю два линейных графика на одном графике. Пока все выглядит хорошо, легенда для сюжета первой линии отсутствует.

Вот код:

library(tidyverse)
library(viridis)


total_colorectal <- data.frame(
  Year= c(2014:2018),
  Numbers=c(213,198,227,238,253)
)


total_colorectal_by_gender <- data.frame(
  Gender = c("M","M","M","M","M","F","F","F","F","F"),
  Year= c(2014, 2015, 2016, 2017, 2018,2014, 2015, 2016, 2017, 2018),
  Numbers = c(118, 127, 128,132,139,95,71,99,106,114)
)



ggplot() + 
  geom_line(data = total_colorectal, aes(x = Year, y = Numbers)) +
  geom_line(data = total_colorectal_by_gender, aes(x = Year, y = Numbers, color=Gender)) + theme_bw()

На графике показана легенда для сюжета второй линии, но легенда первого отсутствует. Я не хочу иметь заголовок легенды, только три метки как Оба, M и F. соответственно.

Я попытался удалить заголовок легенды, добавив theme(legend.title = element_blank()) в конце кода. Это действительно удаляло заголовок, но метка для первого сюжета отсутствовала.

enter image description here

1 Ответ

2 голосов
/ 04 апреля 2020

Вам необходимо указать цвет в aes при первом вызове geom_line (). Один из способов - связать два data.frames и создать график:

total_colorectal %>% 
mutate(Gender="Both") %>% 
bind_rows(total_colorectal_by_gender) %>% 
ggplot(aes(x = Year, y = Numbers, col=Gender)) + 
geom_line() + 
scale_color_manual(name="",values=c("#827397","#ffb6b6","#679b9b"))

enter image description here

...