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