[R] Fitting Contour to Data Points

Gavin Simpson gavin.simpson at ucl.ac.uk
Mon May 16 12:41:04 CEST 2005


Laura Quinn wrote:
> Apologies for the mass mailing today!
> 
> I am attempting to produce a contour plot for phsical data on a map
> matrix. I have a small number of data points which each has an (x,y)
> co-ordinate together with a corresponding value which I would like to
> cvreate a contour plot for.
> 
> I have tried the following code:
> 
> contour(data$x,data$y,data$value)
> 
> but am told:
> 
> Error in contour.default(data$x, data$y, data$value) :
>         increasing x and y values expected
> 
> I have re-ordered the matrix so that the x values are increasing, but
> these do not necessarrily correspond with increasing y values (as this is
> not a regular grid)...can anyone offer a way around this??
> 
> Laura Quinn

You are misunderstanding what the x, y and z arguments want. From 
?contour we have

      x,y: locations of grid lines at which the values in 'z' are
           measured.  These must be in ascending order.  By default,
           equally spaced values from 0 to 1 are used.  If 'x' is a
           'list', its components 'x$x' and 'x$y' are used for 'x' and
           'y', respectively. If the list has component 'z' this is used
           for 'z'.

        z: a matrix containing the values to be plotted ('NA's are
           allowed).  Note that 'x' can be used instead of 'z' for
           convenience.

So if you have a 10 x 10 grid, you will have 10 values each for x and y 
and a 10x10 matrix of the 100 points as z. But you don't have a regular 
grid so you can't use contour directly. Without knowing your data, 
you'll have to get values on to a regular grid using something like 
package akima and it's function interp(), then contour the interpolated 
surface.

There are likely to be other ways. MASS (the book) has an example of 
using loess() to predict surfaces from irregular data for example...

HTH

Gav

-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Gavin Simpson                     [T] +44 (0)20 7679 5522
ENSIS Research Fellow             [F] +44 (0)20 7679 7565
ENSIS Ltd. & ECRC                 [E] gavin.simpsonATNOSPAMucl.ac.uk
UCL Department of Geography       [W] http://www.ucl.ac.uk/~ucfagls/cv/
26 Bedford Way                    [W] http://www.ucl.ac.uk/~ucfagls/
London.  WC1H 0AP.
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%




More information about the R-help mailing list