Re: [R] how to plot a map on a non-rectilinear grid

From: Roger Bivand <>
Date: Mon, 17 Mar 2008 17:10:45 +0000 (UTC)

Costas Douvis <cdouvis <at>> writes:

> Hi everyone
> I have a matrix (let's say that it contains the values of elevation) and
> want to plot its values on a map using a function such as image.plot or
> filled.contour. The problem is that my grid is not rectilinear, it is
> bended. Here is an example
(example removed)
> All 3 matrices have dimensions 20x25. How can I plot elev values in the
> grid points defined by lat and lon?

You can flatten all three to triplets of (x, y, z) values, and colour-code the points, which, as you say, do not form a grid. image() and friends require either a matrix treated as a grid, or a list with the x and y margins and z as a matrix.

Since these are not in a regular grid, the usual approach is to interpolate, perhaps using interp() in the akima package, or using other methods of your choice, so that you can plot the interpolated values on a regular grid.

If you are considering plotting a grid with data based on geographical coordinates on a map in projected coordinates, the input rectangular cells can be projected, using object classes defined in the sp package, and functions provided in the same package, with projection using spTransform() methods in the rgdal package.

Perhaps the R-sig-geo list would be more suited to your question?

Roger Bivand

> mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Mon 17 Mar 2008 - 17:15:04 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 18 Mar 2008 - 14:00:24 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive