Раньше я разместил вопрос о построении имен графства на карте с использованием ggplot и найденных карт ЗДЕСЬ. Мой первый подход состоял в том, чтобы использовать средства всех латов и длинных координат для каждого округа, как показано здесь:
К счастью, у Andrie было 2 предложения по улучшению центрирования с использованием центра диапазонов, а затем с координатой coord_map() {, которая, по-видимому, поддерживает соотношение сторон). Это особенно показало центрирование:
Я думаю, что это выглядит лучше, но все еще имеет некоторые трудности с проблемами перекрытия. Я надеюсь на дальнейшее улучшение центрирования (в той же теме Джастин предложил использовать 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 much improved approach to centering
cnames <- aggregate(cbind(long, lat) ~ subregion, data=ny,
FUN=function(x)mean(range(x)))
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) +
coord_map()