Mesmo tendo encontrado a postagem de Hadley no grupo do google em POSIXct
e geom_vline
, não consegui terminar. Tenho uma série temporal e gostaria de traçar uma linha vertical para os anos de 1998, 2005 e 2010, por exemplo. Eu tentei com ggplot
e qplot
sintaxe, mas ainda não vejo nenhuma linha vertical ou a linha vertical é desenhada na primeira grade vertical e toda a série é deslocada um tanto estranhamente para a direita.
gg <- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) +
layer(geom="line")
gg + geom_vline(xintercept=mydata$datefield[120],linetype=4)
# returns just the time series plot I had before,
# interestingly the legend contains dotted vertical lines
Meu campo de data tem o formato "1993-07-01" e é de classe Date
.
r
date
ggplot2
time-series
Matt Bannert
fonte
fonte
Respostas:
Experimente
as.numeric(mydata$datefield[120])
:Um exemplo de teste simples:
fonte
geom_vline(aes(xintercept=as.numeric(x[c(13, 24)])), linetype=4, colour="black")
seria mais idiomático, ou seja, usar emaes
vez detmp$
.rlang::last_error()
para ver onde ocorreu oVocê também pode fazer isso
geom_vline(xintercept = as.numeric(as.Date("2015-01-01")), linetype=4)
se quiser que a linha permaneça no lugar, esteja ou não a data na 120ª linha.fonte
as.POSIXct(as.Date(c("2016-12-01","2017-02-01")))
as.numeric funciona para mim
saída de código
fonte