Choropleth映射的问题
我正在尝试使用map和ggplot2软件包在R中获取Choropleth地图。我感兴趣的只是代表具体的国家和具体的价值观。我的数据如下:Choropleth映射的问题,r,ggplot2,maps,R,Ggplot2,Maps,我正在尝试使用map和ggplot2软件包在R中获取Choropleth地图。我感兴趣的只是代表具体的国家和具体的价值观。我的数据如下: GEO<-c("ES","GB","FR","DE","DK","AT","PT") Value<-c(0.2560,0.023,0.0120,0.158,0.0025,0.158,0.2) countries=c("Spain","Great Britain","France","German","Denmark","Austria","UK")
GEO<-c("ES","GB","FR","DE","DK","AT","PT")
Value<-c(0.2560,0.023,0.0120,0.158,0.0025,0.158,0.2)
countries=c("Spain","Great Britain","France","German","Denmark","Austria","UK")
datar<-data.frame(GEO,Value,countries)
GEOgeom\u map()
总是有点痛苦,我明白了这一点
英国的正确代码确实是UK
,但与您搜索的其他国家不同,它有子区域。只搜索UK
将返回NA
,而这(奇怪的)将返回nambia
解决方案是搜索UK:
顺便说一句,您可以使用map\u data()
而不是fortify(map(..)
这就是geom_地图weirdness出现的地方。但是你可能已经知道了,因为你正确地绘制了两幅geom_地图
,以及关于所需但警告的x
&y
美学的奇怪之处
最后一件事是修复填充比例,并删除不需要的主题元素(您可以使用theme\u void()
获得相同的结果)
geom_map()
总是有点痛苦,我明白了这一点
英国的正确代码确实是UK
,但与您搜索的其他国家不同,它有子区域。只搜索UK
将返回NA
,而这(奇怪的)将返回nambia
解决方案是搜索UK:
顺便说一句,您可以使用map\u data()
而不是fortify(map(..)
这就是geom_地图weirdness出现的地方。但是你可能已经知道了,因为你正确地绘制了两幅geom_地图
,以及关于所需但警告的x
&y
美学的奇怪之处
最后一件事是修复填充比例,并删除不需要的主题元素(您可以使用theme\u void()
获得相同的结果)
实际上有一个简单的解决方法。
默认情况下,data.frame()将字符向量更改为因子,这可能会在许多方面混淆代码。您可能会看到关于此的警告:
Warning message:
In `[<-.factor`(`*tmp*`, iexp, value = "UK$)|(^UK:") :
invalid factor level, NA generated
警告消息:
实际上,`[中有一个简单的修复方法。
默认情况下,data.frame()会将字符向量更改为因子,这可能会在许多方面混淆代码。您可能会看到有关此的警告:
Warning message:
In `[<-.factor`(`*tmp*`, iexp, value = "UK$)|(^UK:") :
invalid factor level, NA generated
警告消息:
在“[code>map()
函数来自哪里?您应该包括外部包usedmap()来自maps Packagemap()
函数来自哪里?您应该包括外部包usedmap()来自maps PackageWeSome!非常感谢!关于需要冒号“UK:”:事实上,这是因为“uk”本身也适合“ukrain”(20年前决定用“uk”代替“大不列颠”时,ukrain还不存在)。为了保持兼容,maps 3.x现在将普通的“uk”变成了一个丑陋的正则表达式,显然会混淆geom_map(),从而导致“NA”。太棒了!非常感谢!关于需要冒号“UK:”:这实际上是因为“UK”本身也适合“ukrain”(20年前决定使用“UK”代替“大不列颠”时,ukrain还不存在)。为了保持兼容,maps 3.x现在变成了纯“UK”转换为一个丑陋的正则表达式,显然会混淆geom_map(),导致“NA”。
ggplot() +
geom_map(data = mapa, map = mapa, aes(x = long, y = lat,map_id = region)) +
geom_map(data = datar, map = mapa, aes(fill = Value, map_id = countries), color ='black', size = .25) +
coord_map()
#> Warning: Ignoring unknown aesthetics: x, y
last_plot() +
scale_fill_gradient(low = 'white', high = 'red', limits = c(0, .5)) +
theme(panel.background = element_rect(colour = 'black', fill = 'white'),
axis.line = element_blank(),
axis.ticks = element_blank(),
axis.text = element_blank(),
axis.title = element_blank())
Warning message:
In `[<-.factor`(`*tmp*`, iexp, value = "UK$)|(^UK:") :
invalid factor level, NA generated
datar <- data.frame(GEO,Value,countries, stringsAsFactors=FALSE)