我非常好奇如何在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()的结果仍然保留红色虚线,如下图所示。

发布于 2020-05-02 02:43:29
您可以通过编辑颜色
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

现在将颜色更改为黑色:
p$layers[[2]]$aes_params$colour <- "black"
p

https://stackoverflow.com/questions/61548005
复制相似问题