【问题标题】:Labeling a particular cluster in K-means in R在 R 中用 K-means 标记一个特定的簇
【发布时间】:2021-03-30 21:44:28
【问题描述】:

如果我只想标记集群 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()`

【问题讨论】:

    标签: r k-means labeling


    【解决方案1】:

    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)
    

    【讨论】:

      【解决方案2】:

      您的问题有些模棱两可,但如果您想突出显示特定集群中的点,您可以使用gghighlight 包,例如

      library(datasets)
      library(ggplot2)
      #install.packages("gghighlight")
      library(gghighlight)
      
      set.seed(20)
      irisCluster <- kmeans(iris[, 3:4], 3, nstart = 20)
      irisCluster
      
      table(irisCluster$cluster, iris$Species)
      
      iris$cluster <- as.factor(irisCluster$cluster)
        ggplot(iris, aes(Petal.Length, Petal.Width, color = factor(cluster))) +
          geom_point() +
        gghighlight(cluster == 3, keep_scales = TRUE)
      

      【讨论】:

        猜你喜欢
        • 2013-07-07
        • 2014-07-12
        • 2021-06-18
        • 2016-12-18
        • 2015-01-05
        • 1970-01-01
        • 2016-04-14
        • 2016-11-26
        • 2016-12-03
        相关资源
        最近更新 更多