如何使用ggplot创建欧洲choropleth地图

如何使用ggplot创建欧洲choropleth地图,r,ggplot2,gis,geospatial,colormap,R,Ggplot2,Gis,Geospatial,Colormap,我想用ggplot创建一张欧洲的choropleth地图 为此,我从欧盟统计局检索了数据: EU:包含螺母3个区域位置的多边形形状文件 NM_信息:一个csv文件,包含3个区域的特定数据 下面的代码确实勾勒出了欧洲的图景 ggplot(EU_join) + theme_minimal()+ # no backgroundcolor geom_polygon( aes(x = long, y = lat, group = group), color

我想用ggplot创建一张欧洲的choropleth地图

为此,我从欧盟统计局检索了数据:

  • EU:包含螺母3个区域位置的多边形形状文件
  • NM_信息:一个csv文件,包含3个区域的特定数据
下面的代码确实勾勒出了欧洲的图景

  ggplot(EU_join) +
  theme_minimal()+  # no backgroundcolor
  geom_polygon( aes(x = long, y = lat, group = group),
                color = "white",  
                fill = "#9C9797")
作为下一步,我扩展了上面的代码,根据EU_join$value的值为区域着色。我试图运行下面的代码

EU_join = merge(EU, NM_info, by.x = "NUTS_ID", by.y = "GEO")

ggplot(EU_join)+
  theme_minimal()+
  geom_polygon( aes(x = long, y = lat, group = EU_join$NUTS_ID, fill= EU_join$Value),
                color = "grey", alpha = 1/5) 
group和fill参数的长度都是1480。然而,我不断地得到错误

错误:长度必须为1或与数据(476378)相同:x、y、组、填充


此外,我想用蓝色调色板表示EU_join$Value的负值,用红色调色板表示正值。我应该如何调整上述代码的颜色来实现这一点

您可以在
geom\u polygon()
中取出
EU\u连接
以获得:
geom\u多边形(aes(x=long,y=lat,group=NUTS\u ID,fill=Value),color=“grey”,alpha=1/5)
。如果您想要红色/蓝色表示正/负,则需要创建一个指示符变量(使其分类)或使用
scale\u color\u gradient2
。对于指示符变量,类似于
EU\u join$category=ifelse(EU\u join$Value>=0,“正”、“负”)
您可以在
geom\u polygon()
中取出
EU\u连接,只需:
geom\u polygon(aes(x=long,y=lat,group=NUTS\u ID,fill=Value),color=“grey”,alpha=1/5)
。如果您想要红色/蓝色表示正/负,则需要创建一个指示符变量(使其分类)或使用
scale\u color\u gradient2
。对于指示符变量,类似于
EU\u join$category=ifelse(EU\u join$Value>=0,“正”、“负”)