2009-12-11 4 views
4

je l'ensemble de données suivantComment formater en axes R, année et mois

1890 mar 0.4 
1890 apr 0.8 
1890 may 1.0 
... 
1989 jan 0.2 
1989 feb 0.4 
1989 mar 0.5 

Comment puis-je faire un tracé de ligne R avec sur l'axe des x l'année, tous les 5 ans affiché? Mon problème n'est pas tellement de faire l'intrigue, mais de ne montrer que les années que je veux, et de les placer au début de l'année. Donc je ne veux pas de cocher en avril mais en janvier.

+5

R est un environnement informatique statistique. Cliquez par exemple sur la balise r. Je vais ajouter un lien vers leur page d'accueil. –

Répondre

4

Cela devrait vous aider à démarrer:

# create some data 
tmp <- seq(as.POSIXct("1890-03-01", tz="GMT"), 
      as.POSIXct("1920-03-01", tz="GMT"), 
      by="month") 
df <- data.frame(date=tmp, 
       val=rnorm(length(tmp))) 

# plot data 
plot(df$date, df$val, xaxt="n") 
tickpos <- seq(as.POSIXct("1890-01-01", tz="GMT"), 
       as.POSIXct("1920-01-01", tz="GMT"), 
       by="5 years") 
axis.POSIXct(side=1, at=tickpos) 

alt text http://img704.imageshack.us/img704/9341/axis.png

2

vous obtenez ce que rcs proposé par défaut en utilisant zoo comme parcelle avec des lignes et le même axe (correctement!):

R> library(zoo) 
R> zdf <- zoo(df$val, order.by=df$date) 
R> plot(zdf) 
R> 

Les exemples help(plot.zoo) montrent une indexation de date plus sophistiquée, essentiellement ce que rcs vous a montré mais avec un formatage additionnel via , Par exemple,

R> fmt <- "%Y-%m" ## year-mon 
R> txt <- format(index(zdf), fmt) 
R> plot(zdf, xaxt='n') 
R> axis(side=1, at=index(zdf), lab=txt) 
R> 

Si vous sous-ensemble at et lab vous obtenez moins de tiques aussi.

Questions connexes