[R] Get contour of a map

Pierre Bruyer pbruyer at agaetis.fr
Tue May 24 09:34:01 CEST 2011


I think it is a very good idea, thank a lot, I will try this!

Le 23 mai 2011 à 21:00, Duncan Murdoch a écrit :

> On 11-05-23 5:55 AM, Pierre Bruyer wrote:
>> Hello everybody,
>> 
>> I search a function which returns the contour of map with levels like contourLines, but I would like this function return the border of the map too, because the function contourLines cannot consider the corner of the map and it is not adapted to fill polygon after that.
> 
> 
> I think writing that would be hard, but you can fake it.  Find the range of z first to work out the contour levels you want, then put very large values around the outside of the z matrix.  (You can't use Inf, but big finite values will work.)  For example:
> 
> x <- 1:10
> y <- 1:20
> z <- outer(x, y, function(x,y) sin(x)+cos(x*y/10))
> 
> range(z) # about -2 to 2, so 10000 is much bigger
> 
> z <- rbind(10000, z, 10000)
> z <- cbind(10000, z, 10000)
> 
> x <- c(0.99, x, 10.01)
> y <- c(0.99, y, 20.01)
> 
> Now contour plots of x,y,z with contour levels in the range of -2 to 2 will show closed contours, and contourLines() will return paths around them.  They aren't exactly right (because 10000 is not infinity, and 0.01 is not zero), but should be close enough for graphics purposes.
> 
> You'll have to write your own function to handle the general case, but it shouldn't be too hard.
> 
> Duncan Murdoch
> 
> 



More information about the R-help mailing list