你好。我正在用factoextra
包绘制一个pca
。我对每个因子都有3个点,并想在每个点周围画椭圆。但是我得到了错误Too few points to calculate an ellipse
。
使用stat_ellipse
函数可以在ggplot2
中围绕3个点绘制椭圆。我可以通过查看来自ggplot2
的calculate_ellipse
code来确认这一点,它说的是else if (dfd < 3) {message("Too few points to calculate an ellipse")
。那么,factoextra
在fviz_pca_ind
中使用了哪个椭圆函数,它认为3个点太少了?有没有办法强制它添加省略号?这个包有我需要的特定功能,所以我想坚持使用它。谢谢。
library(factoextra)
data(iris)
iris2<-iris[c(1:3,51:53,101:103),] # 3 points for each factor
res.pca <- prcomp(iris2[, -5], scale = TRUE)
fviz_pca_ind(res.pca, label='none',alpha.ind = 1,
habillage=iris2$Species,
repel = TRUE,
addEllipses = TRUE,invisible='quali')+
theme(legend.position = 'bottom')+
coord_equal()
#Too few points to calculate an ellipse
#Too few points to calculate an ellipse
#Too few points to calculate an ellipse
发布于 2020-08-29 17:29:42
我也遇到过同样的问题。解决方案是使用ggforce
包中的geom_mark_ellipse
。可以围绕3个点(甚至1个点)创建一个椭圆。
因此,工作流程应如下所示:
library(factoextra)
library(ggforce)
data(iris)
iris2<-iris[c(1:3,51:53,101:103),] # 3 points for each factor
res.pca <- prcomp(iris2[, -5], scale = TRUE)
fviz_pca_ind(res.pca, label='none',alpha.ind = 1,
habillage=iris2$Species,
repel = TRUE,
# Don't use default Ellipses!!!!
# addEllipses = TRUE,
invisible='quali') +
# ADD ggforce's ellipses
ggforce::geom_mark_ellipse(aes(fill = Groups,
color = Groups)) +
theme(legend.position = 'bottom') +
coord_equal()
https://stackoverflow.com/questions/49931681
复制相似问题