2017-12-20 6 views
2

요즘에는 geom_line 플롯을 많이 사용하고 있습니다. 수업 날짜 축으로 플롯에 주석을 달 수있는 가장 쉬운 방법은 무엇입니까? 날짜 변수를 다른 클래스로 변환하는 것 외에는 다른가요? 여기 축이 'date'클래스 인 경우 ggplot2 주석 달기

내 코드입니다 :

china_trades %>% 
    filter(type %in% c("Imports")) %>% 
    ggplot() + 
    geom_line(aes(x = month, y = dollars, group = 1)) + 
    theme_minimal() 

내가 2017-10하고 여기에

(48)에있는 마지막 데이터 포인트를 주석하고 싶은 내 음모의 : enter image description here

+0

당신이 시도하고있는 방식으로 작동하지 않았다 무엇인지 설명 할 수 : 여기 GG 방법을 사용하여 주석입니까? – Roland

+0

'annotation' 함수'annotation ("text", x = "2017-07", y = 48, label = "Some text")' – Tdebeus

+0

을 사용하고 싶습니다.'month'는 클래스'Date' (진짜야?). 즉, 문자가 아닌 '주석 달기'(올바른 함수 이름에 유의하십시오)에 날짜를 전달해야 함을 의미합니다. – Roland

답변

2

어쩌면 누군가가 수 이 작업은 순수한 gg 방법으로 진행되지만 directlabels 패키지에는 다음과 같은 기능이 있습니다.

china_trades %>% 
    filter(type %in% c("Imports")) %>% 
    ggplot() + 
    geom_line(aes(x = month, y = dollars, group = 1)) + 
    theme_minimal() + 
    geom_dl(aes(label = month), method = list(dl.combine("last.points"))) 

편집 :

x <- as.Date(c('2016-1-1','2016-1-2','2016-1-3','2016-1-4')) 
y <- c(4,1,2,3) 
df <- data.frame(x,y) 

lastDate<- max(x) 
lastDateY <- df[x==lastDate,2] 

ggplot(df) + 
    geom_line(aes(x = x, y = y)) + 
    annotate(geom='text', x=lastDate,y=lastDateY, vjust=-2, label="China") 

enter image description here

+0

답변을 주셔서 감사합니다. 저는 실제로 gg 방법을 기대했습니다. – Tdebeus

+0

gg 방법이 추가되었습니다. 귀하의 DF 없이는 나는 원래의 플롯을 재현 할 수 없지만 거기에 도달 할 수 있어야합니다. gridExtra 패키지를 사용하면 레이블이 가장자리에서 벗어나는 차트를 만들 수 있습니다.이 차트는 이와 같이 꺾은 선형 차트의 마지막 지점에 레이블을 지정하는 경우 유용합니다. –