On 11-11-27 10:32 AM, Sylvain Antoniazza wrote:
Dear all,

I have a problem with this piece of code which I don't really see how to
overcome and I think it might also be of more general interest:

map(xlim=c(-10,40),ylim=c(30,60)
,mar=rep(0,4)+.1
,fill=T
,col="darkseagreen"
,bg="skyblue"
)

The idea is to use the map function from the maps package to draw a map of
Europe. By default with the argument fill=T there is border to the
polygones and I want them without border. Here is the start of the problems.

The polygone function used in map function has a border argument that can
deal with that issue, the problem is that this argument cannot be passed to
map directly because map also has a border argument for another purpose (I
tried with the density argument for polygone passed to map and here it is
working (because map don't have a density argument itself)).

For problems like this you need to look at the source code. map() calls polygon(), passing ... to it. So you want border in the ..., but since border is an argument to map, it is already taken.

So make use of partial argument matching. Pass border to map, and bord or borde to polygon:

 map(xlim=c(-10,40),ylim=c(30,60)
,mar=rep(0,4)+.1
,fill=T
,col="darkseagreen"
,bg="skyblue"
,border=0.01, borde=FALSE)

The first one matches border, the second gets passed to polygon.

Duncan Murdoch


Is there any way to pass a border argument to the polygone function within
map???

Thanks in advance for your help.

Cheers, Sylvain.

PS: for the moment I used a trick with the fg argument passed to par which
allows to pass a colour for the border of the polygons.


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to