On Sun, 2009-07-26 at 13:17 +0200, Poersching wrote:> stvienna wiener schrieb: > > Hi all, > > > > I am plotting a financial time series, but I need a more detailed X-Axis. > > > > Example: > > x <- zoo(rnorm(1:6000), as.Date("1992-11-11")+c(1:6000)) > > plot(x) > > > > The X-Axis is labeled "1995", "2000" and "2005". > > I would need either "1995", "1997", etc. or maybe yearly > > > > > > I used google first, then look at "?plot.zoo" but could't get it working. > > > > > > Regards, > > Steve > > > > ______________________________________________ > > R-help at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > > > > > Hey, > > try something like the following: > > plot(x, y, xaxt="n") > axis.Date(1, at=seq(as.Date("1960-01-01"), max(as.Date(x)), "years"), > labels = FALSE, tcl = -0.2) > axis.Date(1, at=seq(as.Date("1960-01-01"), max(as.Date(x)), "5 years"), > labels = TRUE, las=3, tcl = -0.2) > > Regards, > ChristianHello, I'm actually struggling with the similar problem. I applied Your script into mine like this: - library(Rdbi) library(RdbiPgSQL) conn <- dbConnect(PgSQL(), host="localhost", dbname="BVS", user="postgres", password = "******") query_duj_kal <- dbSendQuery(conn, "select zdroj as well, cas as date, fe2, fe3, mn, nh4, no2, no3, o2, teplota as temperature from analystats where zdroj like 'Dunaj Kalinkovo' order by date") watchem_duj_kal <- dbGetResult(query_duj_kal) date <- (watchem_duj_kal$date) date_p <- strptime(date, "%m-%d-%Y") no3 <- (watchem_duj_kal$no3) nh4 <- (watchem_duj_kal$nh4) par(mfrow=c(3,1), ylog = TRUE, yaxp = c(0.01, 100, 3)) maxy <- 100 miny <- 0.005 plot(date_p, no3,log = "y", type = "l", ylim = c(miny, maxy), col "darkred", main = "Dunaj Kalinkovo", xlab = "time", ylab = "log(NO3-,NH4 +)", xaxt="n") axis.Date(1, at=seq(as.Date("1972-01-01"),max(as.Date(date_p))), "years"), labels = FALSE, tcl = -0.2) axis.Date(1, at=seq(as.Date("1970-01-01"),max(as.Date(date_p))), "5 years"), labels = TRUE, las=3, tcl = -0.2) - Everything goes well, except that I cannot get no tickles nor labels at the moment and I cannot find what I did wrong. Many thanks for any advice Tomas
Try this: library(zoo) x <- zoo(rnorm(1:6000), as.Date("1992-11-11")+c(1:6000)) plot(x, xaxt = "n") # cut time into years, remove duplicate years and convert back to Date yy <- as.Date(unique(cut(time(x), "year"))) axis(1, yy, format(yy, "%y")) There are a number of examples of custom X axes in the examples section of ?plot.zoo On Sat, Sep 12, 2009 at 10:33 PM, <lanczos at fns.uniba.sk> wrote:> On Sun, 2009-07-26 at 13:17 +0200, Poersching wrote: >> stvienna wiener schrieb: >> > Hi all, >> > >> > I am plotting a financial time series, but I need a more detailed X-Axis. >> > >> > Example: >> > x <- zoo(rnorm(1:6000), as.Date("1992-11-11")+c(1:6000)) >> > plot(x) >> > >> > The X-Axis is labeled "1995", "2000" and "2005". >> > I would need either "1995", "1997", etc. or maybe yearly >> > >> > >> > I used google first, then look at "?plot.zoo" but could't get it working. >> > >> > >> > Regards, >> > Steve >> > >> > ______________________________________________ >> > R-help at r-project.org mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-help >> > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html >> > and provide commented, minimal, self-contained, reproducible code. >> > >> > >> Hey, >> >> try something like the following: >> >> plot(x, y, xaxt="n") >> axis.Date(1, at=seq(as.Date("1960-01-01"), max(as.Date(x)), "years"), >> labels = FALSE, tcl = -0.2) >> axis.Date(1, at=seq(as.Date("1960-01-01"), max(as.Date(x)), "5 years"), >> labels = TRUE, las=3, tcl = -0.2) >> >> Regards, >> Christian > > Hello, > > I'm actually struggling with the similar problem. I applied Your script > into mine like this: > - > library(Rdbi) > library(RdbiPgSQL) > conn <- dbConnect(PgSQL(), host="localhost", dbname="BVS", > user="postgres", password = "******") > > query_duj_kal <- dbSendQuery(conn, "select zdroj as well, cas as date, > fe2, fe3, mn, nh4, no2, no3, o2, teplota as temperature from analystats > where zdroj like 'Dunaj Kalinkovo' order by date") > watchem_duj_kal <- dbGetResult(query_duj_kal) > > date <- (watchem_duj_kal$date) > date_p <- strptime(date, "%m-%d-%Y") > no3 <- (watchem_duj_kal$no3) > nh4 <- (watchem_duj_kal$nh4) > > par(mfrow=c(3,1), ylog = TRUE, yaxp = c(0.01, 100, 3)) > maxy <- 100 > miny <- 0.005 > plot(date_p, no3,log = "y", type = "l", ylim ?= c(miny, maxy), col > "darkred", main = "Dunaj Kalinkovo", xlab = "time", ylab = "log(NO3-,NH4 > +)", xaxt="n") > axis.Date(1, at=seq(as.Date("1972-01-01"),max(as.Date(date_p))), > "years"), labels = FALSE, tcl = -0.2) > axis.Date(1, at=seq(as.Date("1970-01-01"),max(as.Date(date_p))), > "5 years"), labels = TRUE, las=3, tcl = -0.2) > - > > Everything goes well, except that I cannot get no tickles nor labels at > the moment and I cannot find what I did wrong. > > Many thanks for any advice > > Tomas > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
Many thanks, the solution is simple and elegant, as usual ;). R is a great tool, the best I know, unfortunately I need more time to practice ... regards Tomas On Sat, 2009-09-12 at 22:52 -0400, Gabor Grothendieck wrote:> Try this: > > library(zoo) > x <- zoo(rnorm(1:6000), as.Date("1992-11-11")+c(1:6000)) > plot(x, xaxt = "n") > # cut time into years, remove duplicate years and convert back to Dateyy <- as.Date(unique(cut(time(x), "year")))> axis(1, yy, format(yy, "%y")) > > There are a number of examples of custom X axes in the > examples section of ?plot.zoo > > On Sat, Sep 12, 2009 at 10:33 PM, <lanczos at fns.uniba.sk> wrote: > > On Sun, 2009-07-26 at 13:17 +0200, Poersching wrote: > >> stvienna wiener schrieb: > >> > Hi all, > >> > > >> > I am plotting a financial time series, but I need a more detailedX-Axis.> >> > > >> > Example: > >> > x <- zoo(rnorm(1:6000), as.Date("1992-11-11")+c(1:6000)) > >> > plot(x) > >> > > >> > The X-Axis is labeled "1995", "2000" and "2005". > >> > I would need either "1995", "1997", etc. or maybe yearly > >> > > >> > > >> > I used google first, then look at "?plot.zoo" but could't get itworking.> >> > > >> > > >> > Regards, > >> > Steve > >> > > >> > ______________________________________________ > >> > R-help at r-project.org mailing list > >> > https://stat.ethz.ch/mailman/listinfo/r-help > >> > PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html > >> > and provide commented, minimal, self-contained, reproducible code. > >> > > >> > > >> Hey, > >> > >> try something like the following: > >> > >> plot(x, y, xaxt="n") > >> axis.Date(1, at=seq(as.Date("1960-01-01"), max(as.Date(x)), "years"),labels = FALSE, tcl = -0.2)> >> axis.Date(1, at=seq(as.Date("1960-01-01"), max(as.Date(x)), "5years"),> >> labels = TRUE, las=3, tcl = -0.2) > >> > >> Regards, > >> Christian > > > > Hello, > > > > I'm actually struggling with the similar problem. I applied Yourscript> > into mine like this: > > - > > library(Rdbi) > > library(RdbiPgSQL) > > conn <- dbConnect(PgSQL(), host="localhost", dbname="BVS", > > user="postgres", password = "******") > > > > query_duj_kal <- dbSendQuery(conn, "select zdroj as well, cas as date,fe2, fe3, mn, nh4, no2, no3, o2, teplota as temperature from analystats> > where zdroj like 'Dunaj Kalinkovo' order by date") > > watchem_duj_kal <- dbGetResult(query_duj_kal) > > > > date <- (watchem_duj_kal$date) > > date_p <- strptime(date, "%m-%d-%Y") > > no3 <- (watchem_duj_kal$no3) > > nh4 <- (watchem_duj_kal$nh4) > > > > par(mfrow=c(3,1), ylog = TRUE, yaxp = c(0.01, 100, 3)) > > maxy <- 100 > > miny <- 0.005 > > plot(date_p, no3,log = "y", type = "l", ylim = c(miny, maxy), col "darkred", main = "Dunaj Kalinkovo", xlab = "time", ylab "log(NO3-,NH4 > > +)", xaxt="n") > > axis.Date(1, at=seq(as.Date("1972-01-01"),max(as.Date(date_p))),"years"), labels = FALSE, tcl = -0.2)> > axis.Date(1, at=seq(as.Date("1970-01-01"),max(as.Date(date_p))), "5years"), labels = TRUE, las=3, tcl = -0.2)> > - > > > > Everything goes well, except that I cannot get no tickles nor labelsat> > the moment and I cannot find what I did wrong. > > > > Many thanks for any advice > > > > Tomas > > > > ______________________________________________ > > R-help at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > >