首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用R创建维恩图?

如何使用R创建维恩图?
EN

Stack Overflow用户
提问于 2019-04-22 09:12:49
回答 1查看 1.5K关注 0票数 0

我使用eulerr包创建了一个Venn Diagram,但它不允许我对其进行自定义,内部圆的轮廓似乎接触到了样本空间圆。我看了一遍VennDiagram包手册,但没找到。有没有办法使用ggplot2或任何其他R包来创建维恩图。

我希望做这个用户试图用我拥有的数据做的事情。3个落入完整样本空间的集合。How to draw a venn diagram subset by a main vector in R

下面是使用eulerr包创建的内容:

这是我拥有的数据。圆B、C和D应该在总共有141个圆的圆A内。变量a中的35是3维恩图和圆之间的空间(空白)。

代码语言:javascript
复制
b = c(50,0,9,2,1,0,0,0)
c = c(50,21,0,2,0,3,0,0)
d = c(50,21,9,2,0,3,20,0)
a = c(50, 21, 9, 2,1,3,20,35)

totes = cbind(b,c,d,a)

我不知道如何着手制作一个我可以定制的可展示的图表。

当我使用eulerr包时,我在命令中手动输入了数据。

EN

回答 1

Stack Overflow用户

发布于 2019-04-23 16:32:12

你可以考虑我的nVennR包。有了你的数据

代码语言:javascript
复制
>library(nVennR)
> myV <- plotVenn(list(b = c(50,9,2,1),
+                      c = c(50,21,2,3),
+                      d = c(50,21,9,2,3,20),
+                      a = c(50, 21, 9, 2,1,3,20,35)))
> showSVG(myV, opacity = 0.2, borderWidth = 1)

结果是:

您还可以列出每个区域中的元素:

代码语言:javascript
复制
> listVennRegions(myV)
$`0, 0, 0, 1 (a)`
[1] 35

$`0, 0, 1, 1 (d, a)`
[1] 20

$`0, 1, 1, 1 (c, d, a)`
[1] 21  3

$`1, 0, 0, 1 (b, a)`
[1] 1

$`1, 0, 1, 1 (b, d, a)`
[1] 9

$`1, 1, 1, 1 (b, c, d, a)`
[1] 50  2

请注意,我删除了列表中的零。该包将这些零作为元素,列表a中没有这些元素。如果你感兴趣,你可以找到算法的vignetteweb interface

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

https://stackoverflow.com/questions/55788125

复制
相关文章

相似问题

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