Error: Too few points to calculate an ellipse with 3 points? - R

梦想与她 提交于 2021-02-10 18:36:12

问题


G'day. I am plotting a pca with the factoextra package. I have 3 points for each factor and would like to draw ellipses around each. But I am getting the error Too few points to calculate an ellipse.

It is possible to draw ellipses around 3 points in ggplot2 with the stat_ellipse function. I can confirm this by looking at the calculate_ellipse code from ggplot2 that says else if (dfd < 3) {message("Too few points to calculate an ellipse"). So what ellipse function is factoextra using in fviz_pca_ind that it considers 3 points too few? Is there a way I can force it to add ellipses? This package has specific features I need so would like to stick with it. Thanks.

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


回答1:


I've faced the same problem. The solution is to use geom_mark_ellipse from ggforce package. It's possible to create an ellipse around 3 points (even around 1 point).

So, the workflow should be as follows:

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/error-too-few-points-to-calculate-an-ellipse-with-3-points-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!