[R] time plotting problem
Jim Lemon
jim at bitwrit.com.au
Wed Nov 14 10:49:16 CET 2007
John Kane wrote:
> I clearly spoke too soon.
>
> With the actual data I am not getting sensible x-axis
> units. The program with the actual data below. Graph
> output is here:
> http://ca.geocities.com/jrkrideau/R/hd.png .
>
> I seem to be getting only a single entry for the
> x-axis of "2007". However dates range from
> First Date Last Date
> "2006-09-26" "2007-11-10"
>
> I must be missing something blindingly obvious but I
> don't see it.
>
> Thanks for any suggestions.
>
>
> Actual data and test program
> ================================================
> mydata <-
> read.table("http://ca.geocities.com/jrkrideau/R/heartdata.txt",
> sep="\t",
> header=FALSE)
> mydata[,1] <- as.Date(mydata[,1],"%m/%d/%y")
> names(mydata) <- Cs(dates, sy,dys,pulse, weight)
> minmax <- c(max(mydata[,2]),min(mydata[,2]),
> max(mydata[,3]),min(mydata[,3]))
> names(minmax) <- c("maxsys", "minsys", "maxdsy",
> "mindys") ; minmax
>
> min.max.dates <- c(min(mydata[,1]), max(mydata[,1]))
> names(min.max.dates) <- c("First Date", "Last Date");
> min.max.dates
>
> ss <- lm(mydata[,2]~mydata[,1])
> plot(mydata[,1],mydata[,2], xlab="Dates", ylab="Blood
> pressure",
> ylim=c(minmax[4], minmax[1]), col= "red",
> type="l")
> abline (ss, col ="yellow")
> dd <- lm(mydata[,3]~mydata[,1])
> points(mydata[,1], mydata[,3], type="l", col="blue" )
> abline(dd, col= "yellow", lwd=2)
>
>
>
Hi John,
It can be done like this:
plot(mydata[,1],mydata[,2], xlab="Dates", ylab="Blood
pressure",ylim=c(minmax[4], minmax[1]), col= "red",
type="l",xaxt="n")
...
axisdates<-c("2006-11-01","2007-01-01","2007-03-01",
"2007-05-01","2007-07-01","2007-09-01","2007-11-01")
staxlab(at=as.Date(axisdates),labels=axisdates)
Jim
More information about the R-help
mailing list