世界地图的“损坏”颜色填充-使用geom_map

时间:2019-06-06 22:16:09

标签: r ggplot2 colors spatial

我想使用ggplot,地图和mapdata可视化世界地图上的某些数据

.xls文件的链接为here *

让我们看看代码:

Window

但是,当我执行代码时,却得到了这个奇怪的图像: enter image description here

怎么了?以前我没有这样的问题。看起来糟透了。

*任何人都知道更好的免费.xls / .xlsx存储库吗?

2 个答案:

答案 0 :(得分:1)

您是否尝试过left_join而不是合并? 没有mapka数据,就无法调试代码。

答案 1 :(得分:1)

最好给我们一些东西作为代码,以复制您遇到的问题。我能够复制您的代码,而无需使用您提供的链接。我的建议是使用left_join()代替merge()replace_na()代替for循环。

library(maps)
library(tidyverse)
library(mapdata)
library(ggthemes)
library(mapproj)

m <- 
  map_data("world") 

mapka <-
  m %>% 
  distinct(region) %>% 
  slice(1:100) %>% 
  mutate(a = c(1:100)*40)

# replicates your issue
choro <- merge(m, mapka, by = "region", all.x = TRUE)

for (i in 1:nrow(choro)) {
  if (is.na(choro$a[i]) == TRUE) {
    choro$a[i] <- 0
  }
}  

ggplot() +
  geom_map(
    data = choro, map = choro, 
    aes(long, lat, map_id = region, fill = a)
  )

# using left_join and replace_na
choro <-
  m %>% 
  left_join(mapka) %>% 
  mutate(a = replace_na(a, 0))

ggplot() +
  geom_map(
    data = choro, map = choro, 
    aes(long, lat, map_id = region, fill = a)
  )

enter image description here