Comment formater axes R, année et mois
Question
Je l'ensemble de données suivant
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 dans R avec sur l'axe des x l'année, affichés tous les 5 ans?
Mon problème est pas tant fait l'intrigue, mais obtenir pour afficher uniquement les années que je veux, et placez-les au début de cette année. Donc, je ne veux pas une tique sur Avril mais en Janvier.
La solution
Cela devrait vous aider à démarrer:
# create some data
set.seed(1)
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)
Autres conseils
Vous obtenez ce que rcs (correctement!) Proposé par défaut en utilisant zoo comme parcelle avec des lignes et le même axe:
R> library(zoo)
R> zdf <- zoo(df$val, order.by=df$date)
R> plot(zdf)
R>
Les exemples montrent help(plot.zoo)
à faire l'indexation date colombophile, essentiellement ce que vous rcs montré mais avec une mise en forme supplémentaire 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.