使用“R”中的“ggvenn”在维恩图中缺少集合

问题描述

我有一个包含 7 组数据的列表。以下代码

genes <- paste("gene",1:1000,sep="")
x <- list(
   A = sample(genes,300),B = sample(genes,525),C = sample(genes,440),D = sample(genes,350),E = sample(genes,100),EE = sample(genes,120),G = sample(genes,102))

library(ggvenn)
ggvenn(x,stroke_size = 0.5,set_name_size = 4)

生成它们的维恩图,但我在结果图中只获得了 4 个集合:

enter image description here

如何获得所有集合的维恩图?此外,我希望列出每个集合内的元素(例如每个集合的前十个元素,因为有很多)。

解决方法

要绘制图表,请使用 venn 包中的 venn::venn(x)。但是,要获取其中的元素,请使用 gplots 包中的 attributes(gplots::venn(x,show.plot = FALSE))$intersections

venn

如果您只对前 10 个元素感兴趣,可以这样做:sapply(attributes(gplots::venn(x,show.plot = FALSE))$intersections,function(x) x[1:10])

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...