[R] Help with maps
Avram Aelony
aavram at mac.com
Wed Dec 3 02:15:48 CET 2008
On Tuesday, December 02, 2008, at 04:40PM, "hadley wickham" <h.wickham at gmail.com> wrote:
>On Tue, Dec 2, 2008 at 6:21 PM, Avram Aelony <aavram at mac.com> wrote:
>> A few questions about maps...
>>
>> (1) How can I find a listing of the internal data sets that map() from the maps library contains?
>> For example, "usa", "county", "state", "nz" all work. Are there any others?
>
>help(package = maps)
Thanks for this.
>> (2) Is there an easier, more generalized way to produce this (http://www.ai.rug.nl/~hedderik/R/US2004/ ) type of plot than this (http://www.ai.rug.nl/~hedderik/R/US2004/map.r ) ? I have geographic (e.g. country, state, county, zip code) count data in a data frame that I would like to represent on a map, but still need to study how map.r works, especially the map.center function...
>
>Yes, it's about six lines of ggplot2 code. But a lot depends on the
>format of your data, so if you could provide a reproducible example of
>what you're trying to do, that would be very helpful.
>
What format is best? I don't really have an example, because I only have a data frame with geo and count data.
The map() function gives me the following
> d <- data.frame(map("county", plot=FALSE)[c("x","y")])
head> head(d)
x y
1 -86.81457 32.34920 #presumably latitudes and longitudes ???
2 -86.81457 32.33774
3 -86.80311 32.32628
4 -86.79737 32.32055
5 -86.78019 32.32628
6 -86.78019 32.34347
and I am not sure how to join this with data from a csv formatted file with columns for country, state, county, zip code, a, b, c, where a,b,c are integers. Ideally, I'd like to show a map of the US by county that represents the sum of all "a" in that county with darker colors for larger values of x ... Then I'd like to do the same for the UK. If I could do the same at the zip code level for certain counties, that would be even better.
>> (3) The examples at http://had.co.nz/ggplot2/coord_map.html are great. Adding another example that with color codes for counts from a data frame would be very useful too.
>
>qplot(..., colour = count) ?
Doesn't that assume that county names and associated counts are mapped to lat/lon ? How does the map() function understand "france" or "county" so that it can do this internally? I'd like map() to figure out the lat/lon details.
head> head(d)
x y
1 -86.81457 32.34920
2 -86.81457 32.33774
3 -86.80311 32.32628
Doesn't each row correspond to a vertex? How to get from vertices to county names with associated counts?
>
>> (4) Is there a reason why I can produce a map of France but not the UK ?
>>
>>>library(maps)
>>>library(ggplot2)
>>>library(mapproj)
>>>(qplot(x, y, data=(data.frame(map("france", plot=FALSE)[c("x","y")])), geom="path")) + coord_map()
>>>(qplot(x, y, data=(data.frame(map("uk", plot=FALSE)[c("x","y")])), geom="path")) + coord_map()
>> Error in get(dbname) : variable "ukMapEnv" was not found
>> In addition: Warning message:
>> In data(list = dbname) : data set 'ukMapEnv' not found
>
>map('world', regions="uk")
>
This produces a very small UK in the upper left quadrant.
>Hadley
>
>--
>http://had.co.nz/
>
>
thanks again in advance
More information about the R-help
mailing list