59

我有以下类型的计数数据。

A   450
B   1800
A and B both    230

我想开发一个彩色的(可能在十字路口半透明),如下面的维恩图。

在此处输入图像描述

注:此图为 PowerPoint 中手绘示例,未按比例绘制。

4

7 回答 7

54

这是一篇从集群列表和共同发生因素中讨论维恩图的帖子。

为了简单的解决方案使用包venneuler

require(venneuler)
v <- venneuler(c(A=450, B=1800, "A&B"=230))
plot(v)

在此处输入图像描述

如需更高级和定制的解决方案,请查看VennDiagram包。

library(VennDiagram) 
venn.diagram(list(B = 1:1800, A = 1571:2020), fill = c("lightblue", "green"), 
             alpha = c(0.5, 0.5), lwd =0, "venn_diagram.tiff")

在此处输入图像描述

于 2012-01-03T15:58:26.513 回答
50

我最近发布了一个新的 R 包eulerr,它可以满足您的需求。它与 venneuler 非常相似,但没有不一致之处。

library(eulerr)
fit <- euler(c(A = 450, B = 1800, "A&B" = 230))
plot(fit)

欧拉图

或者您可以在eulerr.co上为相同的 r 包尝试闪亮的应用程序

闪亮的欧拉

于 2016-10-24T07:00:01.000 回答
42

根据 Geek On Acid 第二个建议的第二个回答(再次感谢),我也可以解决线路问题。如果这与其他 googlers 相关,我将发布!

  require(VennDiagram)
    venn.diagram(list(B = 1:1800, A = 1571:2020),fill = c("red", "green"),
  alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,lty =2, fontfamily =3, 
   filename = "trial2.emf");

在此处输入图像描述

于 2012-01-03T17:35:12.727 回答
17

即使这并不能完全回答您的问题。我认为这对其他想要绘制维恩图的人很有用。可以使用 gplots 包中的 venn() 函数:http: //www.inside-r.org/packages/cran/gplots/docs/venn

## modified slightly from the example given in the documentation
## Example using a list of item names belonging to the
## specified group.
##
require(gplots) 
## construct some fake gene names..
oneName <- function() paste(sample(LETTERS,5,replace=TRUE),collapse="")
geneNames <- replicate(1000, oneName())

## 
GroupA <- sample(geneNames, 400, replace=FALSE)
GroupB <- sample(geneNames, 750, replace=FALSE)
GroupC <- sample(geneNames, 250, replace=FALSE)
GroupD <- sample(geneNames, 300, replace=FALSE)

venn(list(GrpA=GroupA,GrpB=GroupB,GrpC=GroupC,GrpD=GroupD))

在此处输入图像描述 之后我只是使用 illustrator 添加颜色和透明度。 在此处输入图像描述

于 2014-04-10T13:00:22.727 回答
4

有一个直观且灵活的比例绘图仪,您可以下载并运行。在以下位置找到它: http: //omics.pnl.gov/software/VennDiagramPlotter.php

jvenn:交互式维恩图查看器 - GenoToul Bioinfo:http ://bioinfo.genotoul.fr/jvenn/

于 2013-06-15T16:02:32.430 回答
4

我知道 OP 询问 R 中的解决方案,但我想指出一个名为BioVenn的基于 Web 的解决方案。它最多需要 3 个元素列表并绘制维恩图,以便每个表面与元素的数量成正比 - 如下所示:

在此处输入图像描述

在此图中,我手动(通过 PhotoShop)更改了数字的位置,因为我不喜欢 BioVenn 选择的位置。但是您可以选择不使用数字。

理论上,BioVenn 使用的列表应该由基因 ID 组成,但在实践中,这并不重要 - 列表只需要包含字符串。

于 2015-02-14T22:08:42.440 回答
0

FWIW:发现这个python包做同样的事情。

于 2020-09-29T16:10:25.807 回答