Как добавить легенду в хлайн?

Я хотел бы добавить легенду к сюжету хлайна.

Глава моего подмножества выглядит так

Site       Date    Al
1   Bo6 2014-10-07 152.1
2   Bo1 2014-10-07 157.3
3   Bo3 2014-10-07 207.1
4   Bo4 2014-10-07 184.3
5   Bo5 2014-10-07  23.2
13  Bo6 2014-10-14  96.8

Мой код выглядит следующим образом:

require(ggplot2)
require(reshape2)
require(magrittr)
require(dplyr)
require(tidyr)
setwd("~/Documents/Results")
mydata <- read.csv("Metals sheet Rwosnb5.csv")
mydata <- read.csv("Metals sheet Rwosnb5.csv")
L <- subset(mydata, Site =="Bo1"| Site == "Bo2"| Site == "Bo3"| Site ==          "Bo4"| Site == "Bo5" | Site == "Bo6", select = c(Site,Date,Al))
L$Date <- as.Date(L$Date, "%d/%m/%Y")
I <- ggplot(data=L, aes(x=Date, y=Al, colour=Site)) +
  geom_point() + 
  labs(title = "Total Al in the Barlwyd and Bowydd in Pant-yr-afon    sites B4-B9
   2014-2015.", x = "Month 2014/2015",
   y = "Total concentration (mg/L)") +
  scale_y_continuous(limits = c(0, 500)) +
  scale_x_date(date_breaks = "1 month", date_labels = "%m")
I + geom_hline(aes(yintercept= 10),  linetype = 2, colour= 'red',   show.legend =TRUE) +
  geom_hline(aes(yintercept= 75.5), linetype = 2, colour= 'blue', show.legend = TRUE)

По какой-то причине легенда не работает - у легенды есть шесть сайтов, через которые проходит линия. В идеале мне бы хотелось иметь легенду с заголовком = лимит и меткой 1 (10) = лимит NRW и меткой 2 (75,5)= лимит геохимического атласа.

1 ответ

Решение

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

Для этого мы можем двигаться linetype внутри aes в то время как по-прежнему отображается на постоянную. Я использовал ваши нужные ярлыки в качестве константы. Имя легенды и используемый тип линии могут быть установлены в scale_linetype_manual, Я удаляю show.legend = TRUE чтобы не допустить совпадения с другой легендой. Цвета легенды фиксируются в override.aes,

I + geom_hline(aes(yintercept= 10, linetype = "NRW limit"), colour= 'red') +
    geom_hline(aes(yintercept= 75.5, linetype = "Geochemical atlas limit"), colour= 'blue') +
    scale_linetype_manual(name = "limit", values = c(2, 2), 
                      guide = guide_legend(override.aes = list(color = c("blue", "red"))))

Другие вопросы по тегам