2
我一直在试图教自己R并遇到问题。道歉,如果这是一个愚蠢的问题,但我似乎无法在其他主题找到答案。在ggplot2(R)中按地区着色的国家:
我想绘制一张世界地图。我可以绘制颜色因国家而异的世界地图。我的代码是:
library("maptools")
library("tidyverse")
data("wrld_simpl")
new_wrld <- fortify(wrld_simpl, region = "NAME")
#new_tab<-data.frame(wrld_simpl$NAME,as.character(wrld_simpl$REGION))
#colnames(new_tab)<-c("id","region_num")
#str(new_wrld)
#new_wrld<-merge(new_wrld,new_tab, by.x = "id", by.y = "id")
#new_wrld$region_num<-as.character(new_wrld$region_num)
#str(new_wrld)
gg<- ggplot(data = new_wrld, aes(x = long, y = lat, map_id = id, fill = id))+ geom_map(map = new_wrld, color = "Black")
gg<- gg + theme(panel.background = element_rect(fill = "lightblue"),
panel.grid = element_blank(),
legend.position = "None")
gg<- gg + xlim(-180,180) + ylim(-90,90)
gg
正如你可以猜测,在注释行我试图提取区域(读:大陆),并合并到我的数据帧,这样我可以颜色地图由大陆而不是由国家。从我看到的两个调用输出到str(),我可以看到:唯一的区别是添加了第八个变量new_wrld $ region_num。但只要我取消注释该块并运行代码,我得到的错误:
Error in unit(x, default.units) : 'x' and 'units' must have length > 0
而我不知道为什么。然后,我的计划是将ggplot()调用中的“fill = id”更改为“fill = region_num”,以生成一个地图,其中每个大洲的阴影都是不同的颜色。
任何帮助将不胜感激。