使用fviz_nbclust时增加字体大小?

时间:2019-08-21 22:10:59

标签: r plot cluster-analysis

我正在尝试使用fviz_nbclust来增加绘图的字体/标签大小。我尝试查找“ fviz_nbclust”,“ size”,“ font”,“ increase”的各种组合,但没有显示任何内容。

当我只做plot()时,我在this post上看到了一个建议,它是可行的,但不能仅与fviz_nbclust一起使用。我还检查了软件包factoextrahere)的文档,但在第49/50页上并没有看到我认为可能有帮助的任何内容。

这是我的代码:

set.seed(123)
wss <- function(k) {
       kmeans(datT, k, nstart = 10)$tot.withinss
       }
k.values <- 1:15
wss_values <- map_dbl(k.values, wss)

pdf("within_clus_sum1.pdf",width = 11, height = 8) 
plot(k.values, wss_values,
       type="b", pch = 19, frame = FALSE, 
       xlab="Number of clusters K",
       ylab="Total within-clusters sum of squares",
       cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5)

dev.off() 

pdf("within_clus_sum2.pdf",width = 11, height = 8) 
fviz_nbclust(datT, kmeans, method = "wss")
dev.off() 

您可以看到,我只是想了解使用肘形法确定的最佳簇数。

我希望做的是增加使用fviz_nbclust生成的图中的标题,标签和刻度线的大小,因为我要在其中添加文字,如果我将这些图连续放置在两三个中,它们几乎难以辨认。任何人都可以提供的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

factoextra软件包使用ggplot2生成图。这意味着您可以使用ggplot2主题更改图的外观。例如:

elbow.plot <- fviz_nbclust(datT, kmeans, method = "wss", k.max = 10, verbose = F, nboot = 100)
# change size and color of title and x axis labels
elbow.plot + theme(axis.text.x = element_text(size = 15, color = "red"), title = element_text(size = 15, color = "blue")

您可以了解有关ggplot2的更多信息,例如here

如果您想更改线条的颜色和大小,我意识到这有点棘手,因为实际上fviz_nbclust函数调用了ggpubr函数,该函数是ggplot2的包装器(就这么简单)。唯一可以更改的参数是线条颜色:

fviz_nbclust(datT, kmeans, method = "wss", k.max = 10, verbose = F, nboot = 100, linecolor = "red")

要更改其他参数,您可以执行以下操作:

fviz_nbclust(datT, kmeans, method = "wss", k.max = 10, verbose = F, nboot = 100)  + 
theme(axis.text.x = element_text(size = 15))  + 
geom_line(aes(group = 1), color = "red", linetype = "dashed",size = 3) + 
geom_point(group = 1, size = 5, color = "blue")

这基本上将图重新绘制在顶部,虽然不是最佳选择,但可以快速解决。