2016-09-16 242 views
1

我正在尝试使用kmeans进行分析。r - 在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() 

,其结果是: enter image description here

它是确定我,但是当我做:

table(dataCluster$cluster, data$elementid) 

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

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

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

感谢您的帮助 问候

+0

分析中kmeans聚类的意义何在? –

+0

我有两种数据(温度和压力)。它显然是我会创建2个群集,但我做了这个向我的老板展示这个算法的想法:) – VDFerreira

回答

0

如果我得到了它的正确,它不是您想要着色的集群标签,而是您想要通过变量elementid来着色。您可以简单地使用以下内容:

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

这有帮助吗?

+0

这是完美的:)非常感谢你:) – VDFerreira

0

您可以使用scale_colour_manual来设置颜色集群:

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

看到scale_manual了解详情。