Aunque encontré la publicación de Hadley en el grupo de Google en POSIXct
y geom_vline
, no pude hacerlo. Tengo una serie de tiempo y me gustaría dibujar una línea vertical para los años 1998, 2005 y 2010, por ejemplo. Intenté con la sintaxis ggplot
y qplot
, pero todavía no veo ninguna línea vertical o la línea vertical se dibuja en la primera cuadrícula vertical y toda la serie se desplaza de manera algo extraña hacia la derecha.
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
Mi campo de fecha tiene el formato "1993-07-01" y es de clase Date
.
r
date
ggplot2
time-series
Matt Bannert
fuente
fuente
Respuestas:
Prueba
as.numeric(mydata$datefield[120])
:Un ejemplo de prueba simple:
fuente
geom_vline(aes(xintercept=as.numeric(x[c(13, 24)])), linetype=4, colour="black")
sería más idiomático, es decir, usar enaes
lugar detmp$
.rlang::last_error()
para ver dónde ocurrió el error. ''También puede hacerlo
geom_vline(xintercept = as.numeric(as.Date("2015-01-01")), linetype=4)
si desea que la línea permanezca en su lugar, ya sea que su fecha esté en la fila 120 o no.fuente
as.POSIXct(as.Date(c("2016-12-01","2017-02-01")))
as.numeric funciona para mí
salida de código
fuente