Фон
Я пытаюсь визуализировать результаты процедуры кластеризации kmeans
для следующих данных, используя voronoi polygons
на карте США.
Вот код, который я использовал до сих пор:
input <- read.csv("LatLong.csv", header = T, sep = ",")
# K Means Clustering
set.seed(123)
km <- kmeans(input, 17)
cent <- data.frame(km$centers)
# Visualization
states <- map_data("state")
StateMap <- ggplot() + geom_polygon(data = states, aes(x = long, y = lat, group = group), col = "white")
# Voronoi
V <- deldir(cent$long, cent$lat)
ll <-apply(V$dirsgs, 1, FUN = function(x){
readWKT(sprintf("LINESTRING(%s %s, %s %s)", x[1], x[2], x[3], x[4]))
})
pp <- gPolygonize(ll)=
v_df <- fortify(pp)
# Plot
StateMap +
geom_point(data = input, aes(x = long, y = lat), col = factor(km$cluster)) +
geom_polygon(data = v_df, aes(x = long, y = lat, group = group, fill = id), alpha = .3) +
geom_label(data = cent, aes(x = long, y = lat, label = row.names(cent)), alpha = .3)
Создание следующих
Вопрос
Я хотел бы иметь возможность привязывать внешнюю область полигонов и пересекать полученную область с моей картой Соединенных Штатов, чтобы полигоны полностью представляли собой территорию США. Я не смог понять, как это сделать. Любая помощь приветствуется.