On 08/22/2013 09:04 AM, Prof J C Nash (U30A) wrote:
Thanks. The staxlab works with the plot generated by

plot(tt, data,....)

but not with

plot(tsdata, ...)

i.e., it seems to be the tsplot that somehow changes something and the
axis commands have no effect.

I probably should have pointed out that my main concern is that I'm not
getting any error msg. Just no axis label. And it seems I need to make
sure the labels vector is the same length as I need -- no recycling.

JN

Hi JN,
This is an interesting problem for me as it affords an opportunity to learn about time series. I can hack a quick solution like this:

plotlim<-par("usr")
xlim<-c(plotlim[1]+(plotlim[2]-plotlim[1])*0.04,plotlim[2]-
 (plotlim[2]-plotlim[1])*0.04)
xlim
[1] 2011.007 2013.243
nint<-length(yt)-1
labpos<-cumsum(c(xlim[1],rep(diff(xlim)/nint,nint)))
staxlab(1, at=labpos, label=months)

This works, but it is not a very elegant way to get the x positions of a time series. It does allow one to calculate the x positions of any equally spaced series of plotted values (using par("xaxt") to work out the space at the edges).

The "ts" function seems to infer that a "start=c(2011,1),frequency=12" time series refers to years and months, but assigns the x positions as decimal years. I cannot find a way to extract the x positions from the time series and could only offer a really ugly function that tried to guess the intervals using the "start" and "frequency" arguments and then calculated the x positions from these. However, I can see that this would be a useful thing to have, so I'll think about 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