如何绘制一个三集比例Venn/Euler图?

6
我有一组微阵列数据,想按照附图(用PowerPoint完成)进行表示。我尝试了R可用的各种软件包(VennDiagram、venneuler、limma),但无法按比例绘制数据或显示值。
请问是否有人知道如何实现?
以下是可供操作的代码!
谢谢!
# you might need these:
source("http://www.bioconductor.org/biocLite.R")
biocLite("limma")
library(VennDiagram)
library(limma)
library(venneuler)

# Trial 1: Kind of proportional but difficult to customize for labels and other stuff
su <- venneuler(c(A=162, B=104, C=86, "A&B"=206, "A&C"=112, "B&C"=90 ,"A&B&C"=2433))
plot(su)

# Trial 2: looks nice but not proportional
hw <- c(F,F,F,F,T,T,T,T)
hm <- c(F,F,T,T,F,F,T,T)
hr <- c(F,T,F,T,F,T,F,T)
c4 <- cbind(hw,hm,hr)
e <- vennCounts(c4)
e[1:8,4] <- c(3193,86,104,90,162,112,206,2433)
vennDiagram(e)

enter image description here


3
我认为维恩图并没有旨在显示比例面积。无论如何,读者几乎无法有意义地解释重叠区域的相对面积。如果可以的话,你就不需要一开始的数字了。我的建议是退后一步,考虑你想要传达的主要信息,并调整(必要时手动)图形以突出这个信息。--没错,艾德·图夫蒂是我的先知 :-) - Carl Witthoft
1
我认为在某些情况下使用比例可能会有所帮助,但并非所有情况都适用。 - Stenemo
venneuler 的文档非常差,但是你可以使用 su$labels = c("Foo", "Bar", "Baz") 修改标签,使用 su$colors = c(0.1, 0.44, 0.3) 修改颜色等。然而,我认为不可能使用圆形绘制三个集合的比例韦恩图。只有六个参数(三个半径和连接圆心的三条边),试图表示七个不同的区域。但是,使用其他形状(例如椭圆)可能是可能的。我发现 eulerAPE,但它对我来说效果很差。 - Sparhawk
2个回答

0
我建议使用VennDiagram程序包: http://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf 在第19页,您会发现10个非常好的示例(包括高级和简化的示例)。到目前为止,我还没有发现它做不到我需要它做的任何事情。
作为对于其他人有帮助的一般性建议,如果您在寻找答案时到达了这里(与此问题不直接相关但相关),我建议使用此搜索来寻找您的答案。

0

使用我的nVennR软件包,可以通过两种方式完成,如vignette所示。在这个例子中,

> library(nVennR)
> myV <- createVennObj(nSets = 3, sNames = c('A', 'B', 'C'), sSizes = c(0, 86, 104, 90, 162, 112, 206, 2433))
> myV <- plotVenn(nVennObj = myV)

Three sets, proportional

该包可以表示更大的集合数量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接