如何向使用ggplot2创建的choropleth贴图添加标签?

如何向使用ggplot2创建的choropleth贴图添加标签?,r,ggplot2,gis,R,Ggplot2,Gis,我正在尝试向我在ggplot2中创建的choropleth地图添加文本注释,但当前失败。我正在寻求给每个多边形(一个地方政府区域)贴上名称标签 在我继续之前,我知道类似的问题已经被问到了,并且在一个(非常好的)教程中详细介绍了。然而,我尝试了几种方法都没有成功,我想我可能遇到了另一个问题。我怀疑我的代码失败的原因之一是我试图注释geom_polygon(),而我看到的其他方法详细说明了如何注释geom_贴图对象。也就是说,我不明白为什么几何多边形不可能做到这一点 我已经在下面包含了我的代码。数据

我正在尝试向我在ggplot2中创建的choropleth地图添加文本注释,但当前失败。我正在寻求给每个多边形(一个地方政府区域)贴上名称标签

在我继续之前,我知道类似的问题已经被问到了,并且在一个(非常好的)教程中详细介绍了。然而,我尝试了几种方法都没有成功,我想我可能遇到了另一个问题。我怀疑我的代码失败的原因之一是我试图注释geom_polygon(),而我看到的其他方法详细说明了如何注释geom_贴图对象。也就是说,我不明白为什么几何多边形不可能做到这一点

我已经在下面包含了我的代码。数据框包括连接到强化形状文件的我的数据。我试图附加的标签位于“LGA_NAME11”列中

##加载包
需要(ggplot2)
需要(rgdal)
需要(dplyr)
##设置绘图主题

你可以像这样添加标签

# http://stackoverflow.com/questions/9441778/improve-centering-county-names-ggplot-maps
centroids <- setNames(do.call("rbind.data.frame", by(sydneyMapData, sydneyMapData$group, function(x) {Polygon(x[c('long', 'lat')])@labpt})), c('long', 'lat')) 
centroids$label <- sydneyMapData$LGA_NAME11[match(rownames(centroids), sydneyMapData$group)]

ggplot(sydneyMapData, aes(long, lat, group=group, fill=Factor1)) +
  geom_polygon(colour = "white") +
  with(centroids, annotate(geom="text", x = long, y=lat, label = label, size = 2.5)) 
#http://stackoverflow.com/questions/9441778/improve-centering-county-names-ggplot-maps

质心嘿@lukeA,非常感谢。我觉得错过了现有的问题是愚蠢的。我注意到这种方法可以为每个多边形生成多个标签?这次我可以手动删除它们,但我想知道是否可以调整它,使每次只显示一个?不客气。顺便说一句,你应该在这里使用
注释
而不是
geom_文本
。我编辑了这篇文章。
# http://stackoverflow.com/questions/9441778/improve-centering-county-names-ggplot-maps
centroids <- setNames(do.call("rbind.data.frame", by(sydneyMapData, sydneyMapData$group, function(x) {Polygon(x[c('long', 'lat')])@labpt})), c('long', 'lat')) 
centroids$label <- sydneyMapData$LGA_NAME11[match(rownames(centroids), sydneyMapData$group)]

ggplot(sydneyMapData, aes(long, lat, group=group, fill=Factor1)) +
  geom_polygon(colour = "white") +
  with(centroids, annotate(geom="text", x = long, y=lat, label = label, size = 2.5))