Is there a reason that the bottom axis changes color when POSIX data is used in plot function? For example:> timedata <- c("2/3/2003","3/4/2003","5/4/2003") > timedata2 <- strptime(timedata,format="%m/%d/%Y") > numdata <- c(2,3,4) > plot(as.POSIXct(timedata2),numdata,col="red",type="o")As compared to:> numdata2 <- c(3,4,5) > plot(numdata2,numdata,col="red",type="o")I assume that the work around is to place the box and axis after the plot is created, correct? Shawn Way Engineering Manager Tanox, Inc.
On Thu, 26 Jun 2003, Shawn Way wrote:> Is there a reason that the bottom axis changes color when POSIX data is used > in plot function?It's not the same plot function, that's why.> For example: > > > timedata <- c("2/3/2003","3/4/2003","5/4/2003") > > timedata2 <- strptime(timedata,format="%m/%d/%Y") > > numdata <- c(2,3,4) > > plot(as.POSIXct(timedata2),numdata,col="red",type="o") > > As compared to: > > > numdata2 <- c(3,4,5) > > plot(numdata2,numdata,col="red",type="o") > > I assume that the work around is to place the box and axis after the plot is > created, correct?Or the lines after the plot is created.> plot(as.POSIXct(timedata2),numdata,type="n") > lines(as.POSIXct(timedata2),numdata,col="blue",type="o")-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
On Thu, 26 Jun 2003 07:59:00 -0500, Shawn Way <sway at tanox.com> wrote :> >Is there a reason that the bottom axis changes color when POSIX data is used >in plot function?It's the old problem of too much of ... being passed onwards. Here's the current definition: plot.POSIXct <- function (x, y, xlab = "", xaxt = par("xaxt"), ...) { axisInt <- function(x, main, sub, xlab, ylab, ...) axis.POSIXct(1, x, ...) plot.default(x, y, xaxt = "n", xlab = xlab, ...) if (xaxt != "n") axisInt(x, ...) } The "col" argument is being passed to axisInt, but it should have been intercepted. Here's one way to intercept it: plot.POSIXct <- function (x, y, xlab = "", xaxt = par("xaxt"), col par("col"), ...) { axisInt <- function(x, main, sub, xlab, ylab, ...) axis.POSIXct(1, x, ...) plot.default(x, y, xaxt = "n", xlab = xlab, col = col, ...) if (xaxt != "n") axisInt(x, ...) } However, this would still mess up if "lty" or "lwd" were specified; are there others?>I assume that the work around is to place the box and axis after the plot is >created, correct?That's another way. Duncan Murdoch