Même si j'ai trouvé le post de Hadley dans le groupe Google sur POSIXct
et geom_vline
, Je n'ai pas pu le faire. J'ai une série chronologique de et voudrais dessiner une ligne verticale pour les années 1998, 2005 et 2010 par exemple. J'ai essayé avec la syntaxe ggplot
et qplot
, mais je ne vois toujours pas de ligne verticale du tout ou bien la ligne verticale est dessinée sur 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 "1993-07-01" et est de classe Date
.
Essayez as.numeric(mydata$datefield[120])
:
gg + geom_vline(xintercept=as.numeric(mydata$datefield[120]), linetype=4)
Un exemple de test simple:
library("ggplot2")
tmp <- data.frame(x=rep(seq(as.Date(0, Origin="1970-01-01"),
length=36, by="1 month"), 2),
y=rnorm(72),
category=gl(2,36))
p <- ggplot(tmp, aes(x, y, colour=category)) +
layer(geom="line") +
geom_vline(aes(xintercept=as.numeric(x[c(13, 24)])),
linetype=4, colour="black")
print(p)
Vous pouvez également faire geom_vline(xintercept = as.numeric(as.Date("2015-01-01")), linetype=4)
si vous voulez que la ligne reste en place, que votre date soit ou non dans la 120e ligne.