Маркировка конкретного кластера в K-означает в R

#r #k-means #labeling

#r #k-означает #маркировка

Вопрос:

Какие изменения в коде требуются, если я хочу пометить только точки данных в кластере 3?

 > library(datasets)
head(iris)
library(ggplot2)
ggplot(iris, aes(Petal.Length, Petal.Width, color = Species))   geom_point()
set.seed(20)
irisCluster <- kmeans(iris[, 3:4], 3, nstart = 20)
irisCluster

table(irisCluster$cluster, iris$Species)
    setosa versicolor virginica

irisCluster$cluster <- as.factor(irisCluster$cluster)
ggplot(iris, aes(Petal.Length, Petal.Width, color = irisCluster$cluster))   geom_point()`
 

Ответ №1:

Ответ №2:

Вы можете включить метки как пустые, для cluster которых не 3. Возможно, вам потребуется настроить положение меток на основе ваших фактических данных.

 library(dplyr)
library(ggplot2)

iris %>%
  mutate(cluster = irisCluster$cluster, 
         label = replace(Petal.Length, cluster != 3, '')) %>%
  ggplot()   aes(Petal.Length, Petal.Width, color = cluster, label = label)   
  geom_point()   geom_text(vjust = -0.5, hjust = -0.4)