Skip to content

image function with date-time on X axis

3 messages · Halldór Björnsson, Peter Ehlers

#
I am trying to plot a image where the x axis has the units of time.
When I issue the
image(x,y,z) command with x as a POSIXct object, it fails to put a
time stamp on the
x axis.

Instead I get a warning "Incompatible methods" warning and no dates on
my x axis.

This example shows my problem:

Rmat=t(matrix(data=rnorm(1:500),ncol=10,nrow=50))
tax=seq(ISOdate(2010,4,14,12,0,0), ISOdate(2010,4,19,00,0,0), by = "12
hours") ylevs=seq(100,5000,length=50)
image(tax,ylevs,Rmat)

This givies the warning:
In image.default(tax, zlevs, Rmat) :
  Incompatible methods ("-.POSIXt", "Ops.difftime") for "-"
2: In is.vector(X) :

Contrast the x axis result of image with that of plot
 plot(tax,rnorm(length(tax)))

where the date-time shows stamps work fine.

How can I get image to behave (or is there a better function for the job?)

Sincerely
Halld?r
#
On 2010-04-29 12:15, Halld?r Bj?rnsson wrote:
I don't get that warning. Are you doing something you're not
telling us? (I note that you have 'ylevs' in one place and 'zlevs'
in another).

This works for me (using your above definitions of Rmat, etc):

  image(tax, ylevs, Rmat, xaxt = "n")
  axis(1, at = as.numeric(tax), lab = weekdays(tax, TRUE))

  -Peter Ehlers

  
    
#
Thanks Peter

zlevs and ylevs are similar, that was not the problem

Following your suggestion I now use
Which does what I wanted  to do
I still get the warning message, but otherwise this works.

Thanks again

Halld?r
On Fri, Apr 30, 2010 at 2:05 AM, Peter Ehlers <ehlers at ucalgary.ca> wrote: