Même si j'ai trouvé le message de Hadley dans le groupe Google sur POSIXct
et geom_vline
, je n'ai pas pu le faire. J'ai une série chronologique et j'aimerais tracer une ligne verticale pour les années 1998, 2005 et 2010 par exemple. J'ai essayé avec ggplot
et la qplot
syntaxe, mais je ne vois toujours aucune ligne verticale ou la ligne verticale est dessinée à la toute première grille verticale et toute la série est décalée quelque peu étrangement vers la droite.
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
Mon champ de date a le format "01/07/1993" et est de classe Date
.
r
date
ggplot2
time-series
Matt Bannert
la source
la source
Réponses:
Essayez
as.numeric(mydata$datefield[120])
:Un exemple de test simple:
la source
geom_vline(aes(xintercept=as.numeric(x[c(13, 24)])), linetype=4, colour="black")
serait plus idiomatique, c'est-à-dire en utilisantaes
au lieu detmp$
.rlang::last_error()
pour voir où l'erreur s'est produite. ''Vous pouvez également le faire
geom_vline(xintercept = as.numeric(as.Date("2015-01-01")), linetype=4)
si vous souhaitez que la ligne reste en place, que votre date soit ou non dans la 120e ligne.la source
as.POSIXct(as.Date(c("2016-12-01","2017-02-01")))
as.numeric fonctionne pour moi
sortie de code
la source