Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义choropleth地图,将州分组为区域_R_Dictionary_Ggplot2_States_Choropleth - Fatal编程技术网

自定义choropleth地图,将州分组为区域

自定义choropleth地图,将州分组为区域,r,dictionary,ggplot2,states,choropleth,R,Dictionary,Ggplot2,States,Choropleth,我正在尝试创建一个choropleth地图,基本上将各州划分为销售区域。例如:乔治亚州、佛罗里达州和阿拉巴马州将被视为一个称为东南部的地区 似乎我应该能够使用map_data(“state”)中现有的州形状文件数据来创建具有这些领土的新形状文件 但我不确定该怎么做 谢谢你们的帮助。让我试着添加一些代码来解释 library(ggplot2) library(maps) library(plyr) library(grid) #load us state map data us_state_m

我正在尝试创建一个choropleth地图,基本上将各州划分为销售区域。例如:乔治亚州、佛罗里达州和阿拉巴马州将被视为一个称为东南部的地区

似乎我应该能够使用map_data(“state”)中现有的州形状文件数据来创建具有这些领土的新形状文件

但我不确定该怎么做


谢谢你们的帮助。让我试着添加一些代码来解释

library(ggplot2)
library(maps)
library(plyr)
library(grid)

#load us state map data
us_state_map = map_data("state");

#map each state to a division
us_state_map$division[us_state_map$region %in% c("connecticut", "maine", "massachusetts", "new hampshire", "rhode island", "vermont")] <- "D1"
us_state_map$division[us_state_map$region %in% c("new jersey","new york","puerto rico","virgin islands")] <- "D2"
us_state_map$division[us_state_map$region %in% c("delaware","district of columbia","maryland","pennsylvania","virginia","west virginia")] <- "D3"
us_state_map$division[us_state_map$region %in% c("alabama","florida","georgia","kentucky","mississippi","north carolina","south carolina","tennessee")] <- "D4"
us_state_map$division[us_state_map$region %in% c("illinois","indiana","michigan","minnesota","ohio","wisconsin")] <- "D5"
us_state_map$division[us_state_map$region %in% c("arkansas","louisiana","new mexico","oklahoma","texas")] <- "D6"
us_state_map$division[us_state_map$region %in% c("iowa","kansas","missouri","nebraska")] <- "D7"
us_state_map$division[us_state_map$region %in% c("colorado","montana","north dakota","south dakota","utah","wyoming")] <- "D8"
us_state_map$division[us_state_map$region %in% c("arizona","california","hawaii","nevada")] <- "D9"
us_state_map$division[us_state_map$region %in% c("alaska","idaho","oregon","washington")] <- "D10"

#create a dummy variable that counts the number of states in each division
divisions.subtotal <- ddply(us_state_map, .(division), summarize, NumberOfStates=length(unique(region)))

#merge our dummy data back into the map data table
us_state_map.mod <- merge(x=us_state_map, y=divisions.subtotal, all.x=TRUE, by.x="division", by.y="division")
us_state_map.mod = arrange(us_state_map.mod, order);
us_state_map.mod$division = as.factor(us_state_map.mod$division)

#plot a map of each division
map <- ggplot() 
map = map + geom_polygon(data=us_state_map.mod, aes(x=long, y=lat, group=group, fill=division))
map

#using these division boundaries, how do i plot the NumberOfStates variable for each Division
库(ggplot2)
图书馆(地图)
图书馆(plyr)
图书馆(网格)
#加载美国州地图数据
美国州地图=地图数据(“州”);
#将每个州映射到一个分区

美国各州地图$division[美国各州地图$region%在%c(“康涅狄格州”、“缅因州”、“马萨诸塞州”、“新罕布什尔州”、“罗德岛州”、“佛蒙特州”)]不确定您是否还需要答案,但我建议使用地图库:

map("usa")

map("state",regions=c("connecticut", "maine", "massachusetts", 
    "new hampshire", "rhode island","vermont"),interior=F,boundary=T,add=T)

然后使用
col=specifications
为每个区域设置不同级别的阴影。这有点乏味,但它确实创建了区域。

与其修改形状文件,为什么不构建一个函数,根据您的销售区域接收数据框,并根据适合打印的状态输出数据框?您可以使用一个数据框将各州链接到销售区域,并简单地调用
merge
,根据数据的外观,尝试
rgeos::gUnion
。感谢各位为我指明了正确的方向。我已经添加了一些代码来帮助解释我正在做什么。我不知道是否所有的代码都粘贴了进去-它应该以调用ggplot()和注释结束。。。