Factoextra: 如何改变fviz_silhouette函数中平均剪影宽度的颜色?

问题描述 投票:0回答:1

我很想知道如何覆盖fviz_silhouette函数中默认红色虚线的平均轮廓宽度的颜色值。刚刚偷看了一下fviz_silhouette的代码,让我很疑惑,为什么作者要固定线的颜色参数?(从函数源码中列出。)

p <- ggplot(df, mapping) + geom_bar(stat = "identity") + labs(y = "Silhouette width Si", x = "", title = paste0("Clusters silhouette plot ", 
            "\n Average silhouette width: ", round(mean(df$sil_width), 
                2))) + ggplot2::ylim(c(NA, 1)) + geom_hline(yintercept = mean(df$sil_width), 
        linetype = "dashed", color = "red")
    p <- ggpubr::ggpar(p, ...)

而在使用palette = "grey "和+ theme_bw()的情况下,结果还是保留了红色的虚线,如图所示。enter image description here

r cluster-analysis
1个回答
0
投票

你可以通过以下方式编辑颜色

p$layers[[2]]$aes_params$colour <- "black" # or whatever color you like

首先要演示的是做一个图(用默认的红色线)。

library(factoextra)
library(cluster)
data("iris")

iris.scaled <- scale(iris[, -5])

km.res <- kmeans(iris.scaled, 3, nstart = 2)

sil <- silhouette(km.res$cluster, dist(iris.scaled))
p <- fviz_silhouette(sil)
p

enter image description here

现在把颜色改为黑色。

p$layers[[2]]$aes_params$colour <- "black"
p

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.