# [R] Contour - data points not in ascending order?

(Ted Harding) Ted.Harding at manchester.ac.uk
Tue Jun 29 11:36:22 CEST 2010

```On 29-Jun-10 08:53:48, Kirkeby wrote:
> Hi again.
>
> I have made an example of my data:
>
> x<-c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4)
> y<-c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)
> z <- c(12,23,23,42,12,1,1,32,5,45,65,76,32,21,23,43)
> data <- unique(cbind(x,y,z))
> contour(x,y,z, col="red", xlim=c(0,1), ylim=c(0,1), labcex=0.7,
> cex="12")
>
> -which gives an error message.
>
> /CK

Have a close look at ?contour

x,y: locations of grid lines at which the values in 'z'
are measured.  These must be in ascending order.
z: a matrix containing the values to be plotted
('NA's are allowed).

Notice that 'contour' interprets the 'z' matrix as a table
of 'f(x[i], y[j])' values, so that the x axis corresponds
to row number and the y axis to column number, with
column 1 at the bottom, i.e. a 90 degree clockwise
rotation of the conventional textual layout.

x<-c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4)
y<-c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)
z <- c(12,23,23,42,12,1,1,32,5,45,65,76,32,21,23,43)

correspond to:

x <- c(1,2,3,4) ; y <- c(1,2,3,4)

(i.e. locations of grid *lines*, not points)
with z being the matrix

12  12   5  32
23   1  45  21
23   1  65  23
42  32  76  43

i.e.

z <- matrix(c(12,23,23,42,12,1,1,32,5,45,65,76,32,21,23,43),ncol=4)

Then

contour(x,y,z)

should do the job!

Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 29-Jun-10                                       Time: 10:36:20
------------------------------ XFMail ------------------------------

```