2016-03-22 8 views
0

Ich habe eine 8-Jahres-Zeitreihendaten. Ich bin in der Lage, meine Daten zu plotten, aber ich möchte, dass die x-Achse nur den Monat anzeigt, für den ich Daten habe.Plot-Zeit-Serie ggplot Monat-Jahr, Xaxis zeigen nur Monat mit Wert?

my figure

Mein Problem hier ist, dass meine x-Achse zeigt Januar, aber ich habe nur Daten für Juni, Juli und August für jedes Jahr.

Ich würde auch vertikale Linie hinzufügen, jedes Jahr zu trennen ..

Hier ist, wie mein Skript wie bisher aussieht:

ggplot(data=CMRB, aes(x=D, y=Densite, group = habitat)) + geom_line() + scale_x_date(date_labels ="%b%Y")+ geom_point(aes(shape=habitat),size=4, fill="white") 

Und meine Daten wie folgt aussehen:

Annee Grille Periode Densite  SE Methode espece notes notes_2 
82 2004 LG1  PP2 1.8888330 0.3990163 secr brun   NA 
83 2004 LG1  PP3 3.8880450 0.7570719 secr brun   NA 
84 2004 LG1  PP4 3.3281370 0.5573953 secr brun   NA 
85 2005 LG1  PP1 0.2367488  NA secr brun mnka  NA 
86 2005 LG1  PP2 0.4791649 0.2105729 secr brun   NA 
87 2005 LG1  PP3 0.1597214 0.1302571 secr brun   NA 
    habitat Mois  Date   D 
82 humid 07 07/1/2004 2004-07-01 
83 humid 08 08/1/2004 2004-08-01 
84 humid 08 08/1/2004 2004-08-01 
85 humid 06 06/1/2005 2005-06-01 
86 humid 07 07/1/2005 2005-07-01 
87 humid 08 08/1/2005 2005-08-01 
> 

D ist eine Spalte, die ich erstellt habe, um das Datum (das ein Zeichen ist) in ein Datumsformat umzuwandeln.

Weiß jemand, wie man das macht? Wenn möglich, würde ich auch wie der Monat, ohne dass Daten weniger Platz in das Diagramm zu nehmen, um mehr Platz zu lassen, um die Daten von Juni bis August zu sehen ...

Prost

Nico

+0

Ich bin nicht zu sagen, was Sie tun, ist falsch, aber dygraphs ist speziell für das Plotten von Zeitreihendaten konzipiert. Bist du unnachgiebig dafür, ggplot2 zu benutzen? – InfiniteFlashChess

+1

Setzen Sie einfach das 'breaks' Argument von' scale_x_date'. – alistaire

+0

Insbesondere etwas wie 'scale_x_date (date_labels ="% b% Y ", Brüche = eindeutig (CMRB $ D))' – alistaire

Antwort

1

Dies sollte in konvertieren eine Datumsspalte

CMRB <- as.Date(CMRB$D, format = "%Y-%m-%d") 

Wenn Sie Zeitreihendaten darstellen möchten, schlage ich dygraphs

Zum Beispiel verwenden,

library(dygraphs) 

library(xts) 

ts_object <- as.xts(CMRB$Densite, CMRB$D) 

dygraph(ts_object) 

Hier ist der heilige Gral der Webseiten, die Sie durch dygraphs zu führen.

https://rstudio.github.io/dygraphs/

Verwandte Themen