[R] Contour Plot on a non Rectangular Grid

David Winsemius dwinsemius at comcast.net
Sun Oct 24 14:55:00 CEST 2010


On Oct 24, 2010, at 4:30 AM, Lorenzo Isella wrote:

> Dear All,
> I would like to plot a scalar (e.g. a temperature) on a non- 
> rectangular domain (or even better: I would simply like to be able  
> to draw a contour plot on an arbitrary 2D domain). I wonder if there  
> is any tool to achieve that with R. I did some online search in  
> particular on the list archives, found several queries similar to  
> this one but was not able to find any conclusive answer.

One implemented approach to this exists with the rms/Hmisc package  
combination. The perimeter function is used to define a region within  
which the are a sufficient number of cases and the perimeter object is  
passed to the bplot function, which is a wrapper for a lattice  
contourplot call. There is no reason you couldn't emulate


> I am interested in the following 2 options
>
> (1) just read a file of the form
>
> x1  y1  z1
> x2  y2  x2
> ... ... ...
> xn  yn  zn
>
> where the set of {xi} and {yi} are coordinates on an arbitrary  
> domain and {zi} are the values of the scalar for the corresponding  
> {x,y} coordinates.
> (2) Sometimes the domain where I want to draw a contour plot is  
> nothing too fancy and the scalar itself is given by an analytical  
> function. Consider e.g. the case of a circle of radius R=pi/2  
> centered about the origin and a function like
>
> z=f(x,y)=abs(cos(y))
>

That defines the contours but does not restrict the domain.

> NB: in this case a satisfactory solution could be to plot z on a  
> rectangular grid and then clip a circular region

> To fix the ideas, the final result in this case (with a colorjet  
> map) should look like this
>
> http://dl.dropbox.com/u/5685598/scalar_plot.pdf

And that color encoded output would not be the output of a contourplot  
but is more like a levelplot or an image plot. Nonetheless, the  
perimeter and bplot combination can deliver a similar result if you  
supply either code or data as a suitable test case for analysis and  
display.



More information about the R-help mailing list