维恩图比例和颜色阴影与半透明度

jon*_*jon 54 plot r venn-diagram

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

A   450
B   1800
A and B both    230
Run Code Online (Sandbox Code Playgroud)

我想开发一个色彩丰富的(可能是交叉点的半透明度),如下面的维恩图.

在此输入图像描述

注意:此图是在PowerPoint中绘制的示例,并且不是按比例绘制的.

Gee*_*cid 49

这是一篇文章,从集群列表和共同发生因素的角度讨论维恩图.

为了方便解决方案,使用包装通风机:

require(venneuler)
v <- venneuler(c(A=450, B=1800, "A&B"=230))
plot(v)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

  • 尝试:`v < - venneuler(c(A = 450,B = 1800,"A&B"= 425))``plot(v)`并注意到重叠甚至不接近正确.B应该几乎完全覆盖'A'.我对这个包非常怀疑. (6认同)
  • 您可能对此感兴趣,关于venneuler:http://benfred.github.io/venn.js/tests/venneuler_comparison/ (4认同)
  • 包是否对数据应用任何逻辑?我把它给了它:`v < - venneuler(c(A = 100,B = 100,"A&B"= 50,C = 100,"A&C"= 25))`并且它产生了一个图表,其中包括一个小的交叉点B和C. (3认同)

jon*_*jon 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");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @rmf要在R图形设备上绘图,请执行`vennPlot = venn.diagram(...,filename = NULL); grid.newpage(); grid.draw(vennPlot)` (4认同)
  • @PGreen我怀疑问题是你正在使用来自limma包的vennDiagram,而jon正在使用来自vennDiagram包的venn.diagram.vennDiagram没有填充参数,这就是你得到错误的原因. (3认同)

Joh*_*son 38

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

library(eulerr)
fit <- euler(c(A = 450, B = 1800, "A&B" = 230))
plot(fit)
Run Code Online (Sandbox Code Playgroud)

eulerplot

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

闪亮 - 欧拉

  • 闪亮的动画应用程序为我达成了交易 (3认同)

kty*_*agi 16

即使这完全没有回答你的问题.我认为这对于想要绘制维恩图的其他人有用.可以使用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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 之后我只使用插画家添加颜色和透明度. 在此输入图像描述

  • 对不起这是我的错!我的意思是使用Adobe Illustrator (2认同)

小智 5

您可以下载并运行直观且灵活的比例绘图仪。查找地址: http: //omics.pnl.gov/software/VennDiagramPlotter.php

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


Nic*_*ick 5

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

在此输入图像描述

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

理论上,BioVenn 使用的列表应包含基因 ID,但实际上,这并不重要 - 列表只需包含字符串即可。

  • “在这张图中,我手动(通过 PhotoShop)更改了数字的位置,因为我不喜欢 BioVenn 选择的位置。但是您可以选择不使用数字。” 实际上,在 BioVenn 中,您只需将数字拖放到您想要的任何位置即可。无需 Photoshop :-) (2认同)