On 03/18/2012 02:00 PM, Jie Tang wrote:
I have found that  the dimension number of label must be equal with the
dimension of the plot data by your this method.
if we have two data in every hour,it seems can not show the correct
tickment?
.plot(1:20, xaxt = "n")
axis(1, at = 1:10, label = paste(1:10, "h", sep = "")) # Happy axis!

Hi Jie,
What is happening is that if you only pass the "y" values to "plot", it makes up the "x" values by using 1 to the number of y values. So:

plot(1:20)

has the "y" values 1 to 20, and because there are twenty values, it also has the "x" values of 1 to 20.

plot(11:30)

would have the same "x" values. There are two ways to get the values you want on the x axis. Say you have 20 values over 10 hours like this:

values<-c(rnorm(20,5,1))
hours<-as.numeric(paste(rep(8:17,each=2),c("00","30"),sep=""))
plot(hours,values,type="l")

Now your x axis shows hours in a "pretty" sequence. If you want all hours:

plot(hours,values,type="l",xaxt="n")
axis(1,at=seq(800,1700,by=100))

That's the easy way. You can do it like this also:

plot(values,type="l",xaxt="n")
axis(1,at=seq(1,19,by=2),labels=seq(800,1700,by=100))

Got it?

Jim

______________________________________________
R-help@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.

Reply via email to