r - 在 kmeans 图中绘制异常值

r - plot outliers in kmeans plot

我正在尝试使用 kmeans 进行分析。

我有一个数据集:

> head(data)

             tstamp   elementid     value hours
2016-09-15 15:20:28     IN_TEMP  25.12237    15
2016-09-15 15:20:29     IN_TEMP  25.44952    15
2016-09-15 15:20:29     IN_TEMP  25.53550    15
2016-09-15 15:20:39 IN_PRESSURE 101.40683    15
2016-09-15 15:20:49     IN_TEMP  25.94596    15
2016-09-15 15:20:49     IN_TEMP  25.38742    15

所以我做了这个:

dataCluster <- kmeans(data[, 3:4], 2, nstart = 20)
dataCluster$cluster <- as.factor(dataCluster$cluster)
levels(dataCluster$cluster) <- c("IN_TEMP", "IN_PRESSURE")
ggplot(data, aes(value, hours, color = dataCluster$cluster)) + geom_point()

结果是:

这对我来说没问题,但是当我做的时候:

table(dataCluster$cluster, data$elementid)

             IN_PRESSURE | IN_TEMP
  IN_TEMP  |             0  |   953
  IN_PRESSURE |        508  |    44

我在第二个集群上有 44 个值是 IN_TEMP 个值(第一个集群)。

我可以用第一个簇的颜色(红色)绘制这 44 个值吗?

感谢您的帮助 问候

您可以使用 scale_colour_manual 设置簇的颜色:

ggplot(...) + geom_point() + scale_colour_manual(values = c("red","red"))

有关详细信息,请参阅 scale_manual

如果我没记错的话,这不是您想要着色的集群标签,而是您想要通过变量 elementid 着色。您可以简单地使用以下内容:

ggplot(data, aes(value, hours, color = elementid)) + geom_point()

有帮助吗?