image()

Prof Brian D Ripley ripley@stats.ox.ac.uk
Sun, 14 Nov 1999 23:10:26 +0000 (GMT)


On Sat, 13 Nov 1999, Jonathan Rougier wrote:

> May I raise the issue of the behaviour of image()?  In image() dim(z) is
> supposed to be c(length(x), length(y)).  This suggests that the user is
> supplying the midpoints of the rectangles.  For all but the outer
> rectangles this is true.  The outer rectangles, however, are only
> displayed in half width.  So it is not possible to show correctly an image
> plot of equally-spaced abscissa.  I would hazard a guess that these kinds
> of plots make up the bulk of calls to image() either directly or after a
> simple transformation (eg starting with boundary values rather than
> midpoints).
> 
> Can I suggest that the code for image() be modified to show full
> rectangles for all values on the basis that x and y are midpoints? 
> According to my code for R (which is a bit out of date!) the minimum
> change would require 4 lines to be modified in the function do_image of
> plot3d.c.  The alternative, which I think would be more transparent, would
> be to call the function do_image with boundary values having previously
> made the appropriate calculations in image() according to whether
> midpoints or boundary values are supplied.  Something like this happens in
> S+ (although not very transparently!).

I needed this in hurry this weekend for some fMRI plots. I've altered
image so that if z is m x n, x can be of length m or m+1 and y of length n
or n+1.  If x is of length m it supplies the midpoints, if of length m+1
it supplies the boundaries of the cells. (All S compatible.)  The internal
call is made with the boundary values.  The outer cells are plotted
in full width.

The one change is if m=1 or n=1. I reckon that is an error, but S
and R previously filled the whole width. Does anyone want that behaviour?
At present those cases are an error.


-- 
Brian D. Ripley,                  ripley@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 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._