这里有一个可能的解决方案,通过将数据与来自选定状态映射的数据合并来解决您的问题。这就是你要找的吗?
library(maps);
library(RColorBrewer);
# Create Dummy Data Frame to Play With
d = rbind(c('fairfield','connecticut',17),c('westchester','new york',70), c('luzerne','pennsylvania',1));
d = data.frame(d);
names(d) = c("county", "state", "count");
d$count = as.numeric(as.character(d$count));
d$stcon = paste(d$state, d$county, sep=",");
# Extract mapnames for States
mapnames2 = map("county",c("new york","new jersey", "connecticut", "pennsylvania"),plot=FALSE)[4]$names;
mapnames2 = data.frame(mapnames2);
names(mapnames2) = "stcon";
# Merge with d
d = merge(mapnames2, d, all = T);
d$count[is.na(d$count)] = 0;
# Color bins
colors = brewer.pal(5, "PuBu");
d$colorBuckets = as.factor(as.numeric(cut(d$count,c(0,10,20,30,40,50,300))));
map("county"
,c("new york","new jersey", "connecticut", "pennsylvania")
,col = colors[d$colorBuckets]
,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")