Re: [R] Statistical data and Map-package

From: Roger Bivand <Roger.Bivand_at_nhh.no>
Date: Tue 26 Sep 2006 - 09:12:59 GMT


On Tue, 26 Sep 2006, Rense Nieuwenhuis wrote:

> Dear helpeRs,
>
> I'm working with the map-package and came upon a problem which I
> couldn't solve. I hope onee of you can. If not, this can be seen as a
> suggestion for new versions of the package.
>
> I'm trying to create a map of some European countries, filled with
> colors corresponding to some values. Let's say I have the following
> countries and I assign the following colors (fictional):
>
> country2001 <- c("Austria", "Belgium", "Switzerland",
> "Czechoslovakia", "Germany", "Denmark", "Spain", "Finland", "France",
> "UK", "Greece", "Hungary", "Ireland", "Israel", "Italy",
> "Luxembourg", "Netherlands", "Norway", "Poland", "Portugal",
> "Sweden", "Slovenia")
> color2001 <- c("green", "yellow","red","red", "red", "red", "red",
> "red", "green", "red", "red", "red", "red", "red", "red", "red",
> "red", "blue", "red", "red", "red", "orange")
>
> I then let the colors and the values correspond using 'match.map',
> like this:
>
> match <- match.map("world",country2001)
> color <- color2001[match]
>
> And finally I plot the map. It works perfectly fine.
>
> map(database="world", fill=TRUE, col=color)
>
>
> But as I mentioned, I want to create a map of Europe. So, I use xlim
> and ylim to let some parts of the world fall of the map. The syntax
> becomes like this:
>
> map(database="world", fill=TRUE, col=color, xlim=c(-25,70),ylim=c
> (35,71))
>
> Now, a problem arises. The regions on the map are colored by the
> vector 'color'. It needs therefore to correspond to the order in
> which the polygons are drawn. Since some of the full world-map isn't
> drawn this time, the color-vector doesn't correspond anymore. This
> results in the coloring of the wrong countries.
>
> Does anybody know of a way to solve this?

Within the maps package:

europe <- map(database="world", fill=TRUE, plot=FALSE,   xlim=c(-25,70),ylim=c(35,71))
match <- match.map(europe,country2001)
color <- color2001[match]
map(database="world", fill=TRUE, col=color, xlim=c(-25,70),ylim=c(35,71))

but I'm afraid the "world" database precedes the dissolution of the Soviet Union, Czechoslovakia, and Yugoslavia, and doesn't code Sicily or Sardinia in Italy, so the result is perhaps not yet what you need:

europe$names[grep("Sicily", europe$names)] <- "Italy:Sicily" europe$names[grep("Sardinia", europe$names)] <- "Italy:Sardinia" match <- match.map(europe,country2001)
color <- color2001[match]
map(database="world", fill=TRUE, col=color, xlim=c(-25,70),ylim=c(35,71))

deals with Italy, but you won't get Slovenia. There was a discussion about this on the R-sig-geo list in March this year starting here:

http://finzi.psych.upenn.edu/R/Rhelp02a/archive/78303.html

or equivalently:

http://article.gmane.org/gmane.comp.lang.r.geo/299

>
> Thanks very much in advance,
>
> Rense Nieuwenhuis
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@stat.math.ethz.ch 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.
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand@nhh.no

______________________________________________
R-help@stat.math.ethz.ch 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.
Received on Tue Sep 26 19:17:35 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 26 Sep 2006 - 09:30:07 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.