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()
有帮助吗?
我正在尝试使用 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()
有帮助吗?