【问题标题】:How to plot a 3 set proportional Venn/Euler diagram?如何绘制 3 组比例维恩/欧拉图?
【发布时间】:2013-01-17 17:38:05
【问题描述】:

我有一组微阵列数据,我想按照附图(用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)

【问题讨论】:

  • 我不认为维恩图旨在显示比例区域。无论如何,您的读者几乎不可能以有意义的方式解释重叠的相关区域。如果可以的话,您一开始就不需要这些数字。我的建议是退后一步,想想你想要传达的主要信息,并调整(必要时手动)图形以突出显示该信息。 ——是的,Ed Tufte 是我的先知 :-)
  • 我认为在某些情况下使用比例可能会有所帮助,尽管并非完全如此。
  • venneuler 的文档很差,但是你可以用su$labels = c("Foo", "Bar", "Baz") 修改标签,用su$colors = c(0.1, 0.44, 0.3) 修改颜色等。但是,我认为不可能绘制比例维恩图三组使用圆圈。只有六个参数(三个半径,以及连接圆心的三角形的三个边),它们试图代表七个不同的区域。但是,它可能(?)可能与其他形状一起使用,例如省略号。我找到了eulerAPE,但对我来说效果不佳。

标签: r plot venn-diagram


【解决方案1】:

我会推荐 VennDiagram 包: http://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf

在 pake 19 中,您会发现 10 个非常好的示例(包括高级示例和简化示例)。到目前为止,我还没有发现任何我需要它做的不能做的事情。

作为对最终来到这里的其他人的一般帮助(与此问题不直接相关,但相关),我建议使用 this search 寻找您的答案

【讨论】:

    【解决方案2】:

    使用我的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)
    

    包可以代表更多的集合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多