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? (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... (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. (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 ( version 2.8.0, on win xp currently) Thanks in advance, Avram
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)> (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.> (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) ?> (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 foundmap('world', regions="uk") Hadley -- http://had.co.nz/
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
I'm brand new to the map function too, here's my attempt at coloring a map of the states according to a rate (rather than count): map('state')$names MyCount <- c(1:63); MyRate <- runif(63, 0, 1) map('state', fill=TRUE, col=rgb((1-MyRate),MyRate,0,1)) Seeing that there are 63 "states", means you'll have to adjust your data to fit. For example, look at Washington. I think the effect of MyRate on color is that as it approaches 1, rgb produces green, and as it approaches 0, rgb produces red. I know you were asking for counts, but I just had this handy, and I'm learning too. Cheers. -- View this message in context: http://www.nabble.com/Help-with-maps-tp20804115p20874881.html Sent from the R help mailing list archive at Nabble.com.