Jac*_*ong 6 r cluster-analysis ggplot2
我想改变我的fviz_clust情节的结果。具体来说,将图例更改为“簇”而不是“簇”,同时删除图例中找到的卷曲线(我认为它们是字母,但不完全确定)。
我知道fviz_cluster与其他元素一起工作,ggplot.因此我的第一个想法是更改每个scale_..._..情节中的图例标题,但这仍然导致原始图例显示。其次,我以为我可以引入一个scale_shape_manual()对象ggplot,但情节忽略了它。
代码:
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
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想显示一个与 fviz_cluster 生成的非常相似的图例,但图例中每个形状周围都有形状和颜色框。最后的标题是“集群”。
fviz_cluster使用 时ggplot,您的代码中存在错误,导致更改无法正确呈现。
关于将标题更改为“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
Run Code Online (Sandbox Code Playgroud)
删除图例中的文本标签注释通常可以通过指定 来完成geom_text(show.legend = F)。我无法直接执行此操作,因此我只绘制 中的点fviz_cluster,然后geom_text使用 生成的数据结构添加之后的点fviz_cluster。
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)
Run Code Online (Sandbox Code Playgroud)