2012-02-23 7 views
9

x 축이 datetime (POSIXct) 개체 일 때 플롯에 세로선을 추가하는 데 문제가 있습니다. 항상 Epoch에 선을 긋기를 원합니다. 다음은 예입니다 :날짜 축이있는 ggplot 세로선

df <- data.frame(x=ymd('2011-01-01')+hours(0:24), y=runif(25)) 
ggplot(df, aes(x=x,y=y)) + geom_point() 

without vertical line

지금은 세 번째 관측 시간에 한 줄을 추가하려고 : 내가 잘못

ggplot(df, aes(x=x,y=y)) + geom_point() + geom_vline(aes(x=df$x[3])) 

with vertical line

뭔가를하고있어?

답변

3

이 대신 일을보십시오 :

geom_vline(xintercept = df$x[3]) 
+0

감사합니다. 'xintercept'가 ggplot 문서의 미학 목록에서 빠져있는 것처럼 보입니다. 대신에 'x'에 대한 대화가 있습니다. =/ –

+0

네, 저도 저를 버렸습니다. http://had.co.nz/ggplot2/geom_vline.html에있는 문서는'aes (x = whatever) '라고 말하지만, 아래의 모든 예제는'xintercept'를 사용합니다. – Andrew

+1

정확히 @KenWilliams 사용 예> ggplot 오류 : 잘못된 가로 채기 유형 : 숫자 벡터, 함수 또는 a의 이름이어야합니다 (예 : df, aes (x = x, y = y)) + geom_point() + geom_vline (xintercept = df $ x [3] 기능. 어떤 아이디어? –

1
ggplot(df, aes(x=x,y=y)) + geom_point() + geom_vline(aes(xintercept=df$x[3])) 

당신이 xintercept보다는 x을하려는 geom_vlineaes에.

+0

두 번째 및 세 번째 [google serarch] (https://www.google.com/search?sourceid=chrome&client=ubuntu&channel=cs&ie=UTF-8&q=geom_vline+and+date&safe=on) 결과가 귀하의 질문에 대한 답변 인 것으로 보입니다. .. – Justin

+0

도움을 주셔서 감사합니다. 나는이 질문을하기 전에 그 페이지를 보았지만 미학적 이름의 변화를 알아 차리지 못했습니다. 'xintercept' 미학이 문서에서 누락되었습니다. 문서 패치를 제출할 수 있는지 확인합니다. –

+0

그러나 나는 문서에서 미적 목록을 생성하는 것이 무엇인지 파악할 수 없으며, https://github.com/hadley/ggplot2/blob/master/R/geom-vline.r에없는 것으로 보입니다. –