我已经用choroplethr和choroplethrMaps包制作了一张地图。我的问题是,为了绘制一个国家,这个国家必须包含在包含在choroplethrMaps包中的country.regions和country.map数据框中。假设这是我的地图
install.packages("mapproj");library(mapproj)
install.packages("choroplethr")
install.packages("choroplethrMaps")
library(choroplethr);library(choroplethrMaps);library(ggplot2)
data(country.map)
data(country.regions)
a<-c(4.1,2.5,0.4,6.4,1.4,1.8,3.8,1.3,2.3,8.4,5.2,1.9,0.8,1.5,2.1,1.2,3.8,1.4,3.1,0.8,4.0,1.3,4.8,2.6,2.8,2.3,3.1,2.5,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
target<-c("austria","belgium","bulgaria","switzerland","cyprus","czech republic","denmark",
"estonia","spain","finland","france","greece","croatia","hungary","ireland","italy",
"lithuania","luxembourg","latvia","norway","poland","portugal","romania","sweden",
"slovenia","slovakia","turkey","united kingdom","russia","belarus","germany","ukraine","iceland"
,"netherlands","bosnia and herzegovina","albania","montenegro","macedonia","moldova","kosovo")
datas<-data.frame(region=target,value=a)
datas$region<-as.character(datas$region)
gg <- country_choropleth(datas,num_colors=1,zoom=target)
gg <- gg + xlim(-25.266001, 71.869301)
gg <- gg + ylim(34.536311, 70.008797)
gg <- gg + coord_map("lambert", lat0=27.636311, lat1=81.008797)
gg<-gg+scale_fill_continuous(name="%",low="yellow", high="orange", na.value="grey")
gg<-gg+theme(plot.background=element_rect(fill="dodgerblue",colour="black"),legend.position="bottom",legend.background = element_rect(),legend.text = element_text(size = 13, colour = "black"))
gg

一切都很顺利,因为我的数据框中的每个区域在country.regions和country.map中都包含相同的名称。
我的问题是,我想要将马耳他和塞尔维亚州添加到我的地图中,但我无法执行此操作,因为它们未包含在开发人员的country.regions和country.map数据框中。.I尝试将国家名称添加到country.regions,并在country.map中添加这些国家的纬度和经度(使用地图包的地理编码(“马耳他”)函数),但它不能以这种方式工作
发布于 2015-05-16 00:40:43
感谢您使用choroplethr。
我想您会发现很难简单地将一个国家添加到?country.map中。您引用的地理编码函数只返回一个经纬点。但是要绘制国家,您需要点来表示整个边界。
然而,我编写了choroplethr来处理这样的情况,在这种情况下,人们想要为他们自己的map使用choroplethr界面。下面是我推荐你开始的方法。
请阅读the vignette Creating Your Own Maps
上发布
从本质上讲,我认为您希望找到一个满足您需求的shapefile,并充分学习QGIS,以便打开shapefile并在其中浏览。在那之后,应该只需要几行R代码和(希望)一些简单的调试,就可以让choroplethr为你“工作”。
很抱歉,我不能提供更具体的建议。我只是不知道到哪里去找欧洲的shapefiles。但如果你发现了这一点,或者其他人发布了它,我会把它添加到我的列表中。
发布于 2015-10-20 17:37:34
为了记录,choroplethrMaps确实包括了塞尔维亚共和国,但是出于某种原因,你需要称它为“塞尔维亚共和国”,而不仅仅是“塞尔维亚共和国”。
https://stackoverflow.com/questions/30260898
复制相似问题