天儿真好。
我正在使用pca
包绘制factoextra
。每个因素我有3个点,并希望在每个因素周围画椭圆。但我收到错误Too few points to calculate an ellipse
。
可以使用ggplot2
函数在stat_ellipse
中的3个点左右绘制椭圆。我可以通过查看calculate_ellipse
ggplot2
中的else if (dfd < 3) {message("Too few points to calculate an ellipse")
code来确认这一点。那么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
答案 0 :(得分:0)
我遇到了同样的问题。解决方案是使用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()