2016-08-24 3 views
4

hline plot에 범례를 추가하고 싶습니다. - 전설이와 여섯 개 사이트를 가지고있는 전설이 작동하지 않는 몇 가지 이유를 들어hline에 범례를 추가하는 방법은 무엇입니까?

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) 

다음과 같이

내 부분 집합의 머리는이

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 

내 코드처럼 보이는

입니다 그들을 통해 라인. 제목 = 한계 및 레이블 1 (10) = NRW 한도 및 레이블 2 (75.5) = 지구 화학적 아틀라스 한도의 전설이 이상적입니다.

+1

읽어주세요 [R 최소한의 재현성 예를 제공하는 방법 (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible- 예 # 답변 -5963610). 그런 다음 적절하게 편집하고 개선하십시오. 좋은 게시물은 보통 최소한의 입력 데이터, 원하는 출력 데이터 및 코드 시도를 제공합니다. 새/깨끗한 R 세션에서 모두 복사하여 붙여 넣을 수 있습니다. 예 : 당신의 예제는 CSV 파일을 가지고 있다는 것 외에는 아무도 실행할 수 없습니다.'library (ggplot2)'가 없습니다. – lukeA

+0

'show.legend' 대신'show_guide'를 시도 했습니까? http://stackoverflow.com/questions/17092894/how-to-added-a-custom-legend-for-geom-hline & http://stackoverflow.com/questions/17092894/how-to-added-a- custom-legend-for-geom-hline – bVa

+0

방금 ​​시도한 결과 "show_guide"오류 메시지가 표시됩니다. 대신 'show.legend'를 사용하십시오. " – LucySHE

답변

12

미학 linetype을 사용하면 기존 범례에 추가하지 않고 가로선에 대한 별도 범례를 만들 수 있습니다.

이 작업을 수행하려면 linetypeaes 내에서 여전히 상수로 매핑하면서 이동할 수 있습니다. 원하는 레이블을 상수로 사용했습니다. 범례 이름과 사용 된 회선 유형은 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")))) 

enter image description here

+0

정말 고맙습니다 !! What R R. whizzkid :-) – LucySHE

관련 문제