Wie man eine vertikale geom_vline zu einer x-Achse von der Klasse date aus?
Obwohl ich fand Hadley ' s post in der google-Gruppe auf POSIXct
und geom_vline
ich konnte nicht bekommen es getan. Ich habe eine Zeitreihe aus und würde gerne so zeichnen Sie eine vertikale Linie, die für die Jahre 1998, 2005 und 2010 zum Beispiel. Ich habe versucht, mit ggplot
und qplot
syntax, aber trotzdem habe ich entweder keine vertikale Linie oder vertikale Linie gezeichnet ist, an der ersten vertikalen Gitterlinien und die ganze Serie, verlagert sich etwas seltsam auf der rechten Seite.
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
Mein Tag-Feld formatieren "1993-07-01" und ist von der Klasse Date
.
Können Sie fügen Sie ein paar Zeilen der dataframe, so dass wir versuchen können, Ihrem Beispiel?
InformationsquelleAutor Matt Bannert | 2011-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
as.numeric(mydata$datefield[120])
:Einen einfachen test Beispiel:
Wenn dies immer noch nicht funktioniert, fügen Sie scale_x_date()
Ich Frage mich, ob
geom_vline(aes(xintercept=as.numeric(x[c(13, 24)])), linetype=4, colour="black")
wäre mehr idiomatische, D. H., mitaes
statttmp$
.InformationsquelleAutor rcs
Könnten Sie auch tun
geom_vline(xintercept = as.numeric(as.Date("2015-01-01")), linetype=4)
wenn Sie möchten, die Linie, um im Platz zu bleiben, ob oder nicht dein Datum ist in der Zeile 120.as.POSIXct(as.Date(c("2016-12-01","2017-02-01")))
InformationsquelleAutor D.Hadley