早期我发布了一个关于使用ggplot在地图上绘制县名的问题以及在此处找到的地图.我的第一种方法是采用每个县的所有纬度和长坐标的方法,如下所示:

值得庆幸的是,Andrie提出了两个建议,即使用范围中心改善居中,然后是coord_map(){这似乎可以保持宽高比正确}.这在很大程度上改善了中心位置,如下所示:

我认为这看起来更好,但在重叠问题上仍然存在一些困难.我希望进一步提高中心性(在同一个线程中Justin提出了一个kmeans方法).如果有必要,我可以旋转文本,但我希望在必要时将它们居中并旋转(它们超出县界),以便在地图上最好地显示县名.
有任何想法吗?
library(ggplot2); library(maps)
county_df <- map_data('county') #mappings of counties by state
ny <- subset(county_df, region=="new york") #subset just for NYS
ny$county <- ny$subregion
p <- ggplot(ny, aes(long, lat, group=group)) + geom_polygon(colour='black', fill=NA)
#my first approach to centering
cnames <- aggregate(cbind(long, lat) ~ subregion, data=ny, FUN=mean)
ggplot(ny, aes(long, lat)) +
geom_polygon(aes(group=group), colour='black', fill=NA) +
geom_text(data=cnames, aes(long, lat, label = subregion), size=3)
#Andrie's much improved approach to centering
cnames <- aggregate(cbind(long, lat) ~ subregion, data=ny,
FUN=function(x)mean(range(x)))
ggplot(ny, …Run Code Online (Sandbox Code Playgroud)