Jan.Schwanbeck at hydrologie.unibe.ch
2007-May-31 13:54 UTC
[R] plotting variable sections of hourly time series data using plot.zoo
Dear list, I have to look examine hourly time - series and would like to plot variable section of them using plot.zoo. Hourly time series data which looks like this: YYYY MM DD HH P-uk P-kor P-SME EPOT EREA RO R1 R2 RGES S-SNO SI SSM SUZ SLZ 2003 1 1 1 0.385 0.456 0.021 0.000 0.000 0.000 0.013 0.223 0.235 0.01 0.38 74.72 0.96 736.51 2003 1 1 2 0.230 0.275 0.028 0.000 0.000 0.000 0.012 0.223 0.235 0.03 0.56 74.72 0.94 736.37 #With help of read.table I got the data into R : DF <- read.table(file=fn,header=FALSE,skip=2) #Substitute the header: names(DF) <- c("year","month","day","hour","FN","Punc","Pcor","Pmelt","ETP","ETR","RS","RI","RB","Rtot","Ssnow","SI","SSM","SUZ","SLZ") #Create datetime vector library(chron) DF$datetime <- with(DF,chron(paste(month,day,year,sep="/"))+hour/24) #Try to convert DF into ts - object DFts DFts <- as.ts(DF) # works, but gives back: Warning message: Class information of one or more columns was lost.??? #Try to convert DF into zoo - object DFzoo library(zoo) DFzoo <- as.zoo(DFts) #Plot of whole time series skipping first 5 and last 3 columns plot.zoo(DFzoo[ ,6:ncol(myDFzoo-3)]) # works, but x-axis labels are numbers from 1 to ...last hour I would like to use plot.zoo for plotting: - the whole period (3years) --> axis-labels month and year - section of few days defining begin and end as date --> axis-label day and month (may be hour) Afer long tries with "as.Date" and Co. I still didn't get any useful result. Further is there any possibility to define the plot window using two variables like: begin <- "22/2/2003 01:00:00" end <- "26/3/2003 07:00:00" to plot the time series section in between this two dates? I am even not sure if the zoo package was the right choise for my problem. Thanks a lot in advance Best regards Jan University of Berne
Gabor Grothendieck
2007-May-31 14:28 UTC
[R] plotting variable sections of hourly time series data using plot.zoo
There seems to be an error in your names(DF) <- line so I just renamed the first 4 fields. Try this: # Should be 3 lines in Lines. Lines <- "YYYY MM DD HH P-uk P-kor P-SME EPOT EREA RO R1 R2 RGES S-SNO SI SSM SUZ SLZ 2003 1 1 1 0.385 0.456 0.021 0.000 0.000 0.000 0.013 0.223 0.235 0.01 0.38 74.72 0.96 736.51 2003 1 1 2 0.230 0.275 0.028 0.000 0.000 0.000 0.012 0.223 0.235 0.03 0.56 74.72 0.94 736.37 " DF <- read.table(textConnection(Lines), header = TRUE) names(DF)[1:4] <- c("year", "month", "day", "hour") library(chron) library(zoo) z <- zoo(as.matrix(DF), with(DF,chron(paste(month,day,year,sep="/"))+hour/24)) as.ts(z) On 5/31/07, Jan.Schwanbeck at hydrologie.unibe.ch <Jan.Schwanbeck at hydrologie.unibe.ch> wrote:> > Dear list, > > I have to look examine hourly time - series and would like to plot variable > section of them using plot.zoo. > > > Hourly time series data which looks like this: > > YYYY MM DD HH P-uk P-kor P-SME EPOT EREA RO R1 > R2 RGES S-SNO SI SSM SUZ SLZ > 2003 1 1 1 0.385 0.456 0.021 0.000 0.000 0.000 0.013 > 0.223 0.235 0.01 0.38 74.72 0.96 736.51 > 2003 1 1 2 0.230 0.275 0.028 0.000 0.000 0.000 0.012 > 0.223 0.235 0.03 0.56 74.72 0.94 736.37 > > #With help of read.table I got the data into R : > > DF <- read.table(file=fn,header=FALSE,skip=2) > > #Substitute the header: > > names(DF) <- > c("year","month","day","hour","FN","Punc","Pcor","Pmelt","ETP","ETR","RS","RI","RB","Rtot","Ssnow","SI","SSM","SUZ","SLZ") > > #Create datetime vector > > library(chron) > DF$datetime <- with(DF,chron(paste(month,day,year,sep="/"))+hour/24) > > #Try to convert DF into ts - object DFts > > DFts <- as.ts(DF) # works, but gives back: Warning message: Class > information of one or more columns was lost.??? > > #Try to convert DF into zoo - object DFzoo > > library(zoo) > DFzoo <- as.zoo(DFts) > > #Plot of whole time series skipping first 5 and last 3 columns > > plot.zoo(DFzoo[ ,6:ncol(myDFzoo-3)]) > > # works, but x-axis labels are numbers from 1 to ...last hour > > > I would like to use plot.zoo for plotting: > - the whole period (3years) --> axis-labels month and year > - section of few days defining begin and end as date --> axis-label day > and month (may be hour) > > Afer long tries with "as.Date" and Co. I still didn't get any useful > result. > > Further is there any possibility to define the plot window using two > variables like: > > begin <- "22/2/2003 01:00:00" > end <- "26/3/2003 07:00:00" > > to plot the time series section in between this two dates? > > I am even not sure if the zoo package was the right choise for my problem. > > Thanks a lot in advance > > Best regards > > Jan > > University of Berne > > ______________________________________________ > R-help at stat.math.ethz.ch 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. >