Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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_Ggplot2_Maps - Fatal编程技术网

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")

我正在尝试使用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")
datar<-data.frame(GEO,Value,countries)
GEO
geom\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 Package
map()
函数来自哪里?您应该包括外部包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)