首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:点太少,无法计算具有3个点的椭圆?-R

错误:点太少,无法计算具有3个点的椭圆?-R
EN

Stack Overflow用户
提问于 2018-04-20 07:25:21
回答 1查看 4.3K关注 0票数 2

你好。我正在用factoextra包绘制一个pca。我对每个因子都有3个点,并想在每个点周围画椭圆。但是我得到了错误Too few points to calculate an ellipse

使用stat_ellipse函数可以在ggplot2中围绕3个点绘制椭圆。我可以通过查看来自ggplot2calculate_ellipse code来确认这一点,它说的是else if (dfd < 3) {message("Too few points to calculate an ellipse")。那么,factoextrafviz_pca_ind中使用了哪个椭圆函数,它认为3个点太少了?有没有办法强制它添加省略号?这个包有我需要的特定功能,所以我想坚持使用它。谢谢。

代码语言:javascript
运行
复制
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

EN

回答 1

Stack Overflow用户

发布于 2020-08-29 17:29:42

我也遇到过同样的问题。解决方案是使用ggforce包中的geom_mark_ellipse。可以围绕3个点(甚至1个点)创建一个椭圆。

因此,工作流程应如下所示:

代码语言:javascript
运行
复制
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()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49931681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档