Choropleth mapping issue in R
        Posted  
        
            by chasec
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by chasec
        
        
        
        Published on 2010-04-13T14:29:07Z
        Indexed on 
            2010/04/13
            14:33 UTC
        
        
        Read the original article
        Hit count: 245
        
I am trying to follow the tutorial described here: http://www.thisisthegreenroom.com/2009/choropleths-in-r/
The below code executes, but it is either not matching my dataset with the maps_counties data properly, or it isn't plotting it in the order I would expect. For example, the resulting areas for the greater NYC area show no density while random counties in PA show the highest density.
The general format of my data table is:
county state count
fairfield connecticut 17
hartford connecticut 6
litchfield connecticut 3
new haven connecticut 12
...
...
westchester new york 70
yates new york 1
luzerne pennsylvania 1
Note this data is in order by state and then county and includes data for CT, NJ, NY, & PA.
First, I read in my data set:
library(maps)
library(RColorBrewer)
d <- read.table("gissum.txt", sep="\t", header=TRUE)
#Concatenate state and county info to match maps library
d$stcon <- paste(d$state, d$county, sep=",")
#Color bins
colors = brewer.pal(5, "PuBu")
d$colorBuckets <- as.factor(as.numeric(cut(d$count,c(0,10,20,30,40,50,300))))
Here is my matching
mapnames <- map("county",plot=FALSE)[4]$names
colorsmatched <- d$colorBuckets [na.omit(match(mapnames ,d$stcon))]
Plotting:
map("county"
  ,c("new york","new jersey", "connecticut", "pennsylvania")
  ,col = colors[d$colorBuckets[na.omit(match(mapnames ,d$stcon))]]
  ,fill = TRUE
  ,resolution = 0
  ,lty = 0
  ,lwd= 0.5
)
map("state"
  ,c("new york","new jersey", "connecticut", "pennsylvania")
  ,col = "black"
  ,fill=FALSE
  ,add=TRUE
  ,lty=1
  ,lwd=2
)
map("county"
   ,c("new york","new jersey", "connecticut", "pennsylvania")
   ,col = "black"
   ,fill=FALSE
   ,add=TRUE
  , lty=1
  , lwd=.5
)
title(main="Respondent Home ZIP Codes by County")
I am sure I am missing something basic re: the order in which the maps function plots items - but I can't seem to figure it out. Thanks for the help. Please let me know if you need any more information.
© Stack Overflow or respective owner