在 fviz_cluster 中调整输出

Adjusting output in fviz_cluster

我想更改 fviz_clust 绘图的结果。具体来说,将图例更改为 "Cluster" 而不是 "cluster",同时删除图例中的卷曲线条(我认为它们是字母,但不完全确定)。

我知道 fviz_clusterggplot. 中的其他元素一起工作,因此我的第一个想法是更改每个情节 scale_..._.. 中的图例标题,但这仍然导致原始图例显示。其次,我想我可以在ggplot中引入一个scale_shape_manual() object,但剧情忽略了它。

代码:

km.res <- kmeans(iris[,-5], 3)
p <- fviz_cluster(km.res, iris[,-5]) +
scale_color_brewer(palette='Set2') + # set guides=FALSE to remove legend
scale_fill_brewer(palette='Set2') +
scale_shape_manual('1'=22,'2'=23,'3'=24) # plot ignores this
ggtitle(label='')
p

理想情况下,我想展示一个与 fviz_cluster 生成的图例非常相似的图例,但图例中每个形状周围都有形状和颜色框。最后加上 "Cluster."

的标题

fviz_clusterggplot 一起工作,您的代码有错误导致无法正确呈现更改。

关于将标题更改为 "Cluster",您可以在 scales-..._...guides 内完成。在 scale_shape_manual.

中指定新的形状值
library(factoextra)
km.res <- kmeans(iris[, -5], 3)

p <- fviz_cluster(km.res, iris[, -5]) +
  scale_color_brewer('Cluster', palette='Set2') + 
  scale_fill_brewer('Cluster', palette='Set2') +
  scale_shape_manual('Cluster', values=c(22,23,24)) + 
  ggtitle(label='') 
p

去除图例中的文本标签注释通常可以通过指定geom_text(show.legend = F)来完成。我不能直接这样做,所以我只绘制 fviz_cluster 中的点,然后使用 fviz_cluster.

生成的数据结构添加 geom_text
p2 <- fviz_cluster(km.res, iris[, -5], geom = c("point")) +
  scale_color_brewer('Cluster', palette='Set2') + 
  scale_fill_brewer('Cluster', palette='Set2') +
  scale_shape_manual('Cluster', values=c(22,23,24)) + 
  ggtitle(label='') 
p2 + geom_text(data=p2$data, aes(x=x, y=y, label=name, colour=cluster),
  vjust=-1, show.legend = F)