【问题标题】:How to change the color of clusters using R?如何使用 R 更改簇的颜色?
【发布时间】:2015-03-08 23:38:58
【问题描述】:

我正在使用 R 进行 Kmeans 聚类,因此我加载了库 (fpc)​​,并使用 plotcluster 方法绘制数据。

clus <- kmeans(data, centers = 5)
plotcluster(data, clus$cluster, pch = clus$cluster)

因此绘制了 5 组粒子,但不同组使用默认颜色。但是我怎样才能改变粒子的颜色呢?

例如,第 1 组为某种特定颜色,第 2 组为某种特定颜色。

plotcluster函数中有一个参数叫“col”,但是不知道怎么改。

【问题讨论】:

  • 欢迎堆栈溢出。一个可重复的例子将有助于产生有用的答案。访问this link,了解如何提出好的问题。

标签: r plot colors


【解决方案1】:

这是我在 Mac OS X 10.10.2 上运行的 RStudio 上测试的代码,并安装了最新的 fpc 包。

我绝不是建议您使用这些颜色,但如果您添加以下两个参数,我认为您将能够选择您想要的颜色:

可以强制转换为整数的类号向量;长度必须等于 nrow(xd)

clvecd = c(1,2,3,4,5)

与您的集群相对应的颜色向量

col=c("blue","green","purple","re​​d","yellow")

plotcluster(  data
            , clus$cluster
            , pch = clus$cluster
            , clvecd=c(1,2,3,4,5)
            , col=c("blue","green","purple","red","yellow"))

【讨论】:

  • 非常感谢。但是,我真的不明白“clvecd”是什么意思。看来,它是集群的id。就像我的例子一样,一个数据框中有 867 行,它们可以分为 5 个不同的组。每个组都需要用 col=c("blue","green","purple","re​​d","yellow") 着色但是如果我像你的那样制作 plotcluster 功能,它会提示一条警告消息“更长对象长度不是较短对象长度的倍数”。此外,在添加“clvecd”之后,集群以不同的模式绘制。但是如果我把“clvecd = clus$cluster”,它也不起作用。
【解决方案2】:

有点晚了,但是嘿。我今天遇到了这个问题并找到了这个解决方案。

clus <- kmeans(x, centers=5)
vcol <- c("blue","green","purple","red","yellow")
plotcluster(x, clus$cluster, col=vcol[clus$cluster])

注意:
如果 length(vcol) - center = 1,则不会使用最后一种颜色。
如果centers - length(vcol) = 1,则不会显示最后一个簇中的点。

【讨论】:

    猜你喜欢
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2019-10-11
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多