2009-09-15 16 views
24

リムマパッケージの他に、Rのベンダイアグラムを実行するための他のパッケージもあります。ベンダイアンとR?

誰でも知りましたか?

ここにlimmaパッケージのあるnotes on doing Venn diagramsがあります。

+3

こんにちは、私はまだ比例ベン図を描くパッケージを探しています。 8年前に私が見つけた最も近いものは、https://stat.ethz.ch/pipermail/r-help/2003-February/029393.htmlです。私はこれでもっと最近の開発があることを期待していました。 – andrewj

+1

http://www.caleydo.org/tools/upset/ – wikiselev

答えて

5

gplotsパッケージのvenn関数は、4/5セットのVenn Diagramを作成する必要がある場合にも便利です。

7

私はトリックに2つのカスタム関数を使用します。私のvenndiaの実装では、vennの図をプロットし、AとB(とC)の重なりのリストを返します。以下のコードを参照してください。これらにより

、することができます両方のプロットとは、データを返します

vd <- venndia(A=LETTERS[1:15], B=LETTERS[5:20], getdata=TRUE) 

venndia(A=LETTERS[1:15], B=LETTERS[5:20]) 

getdataはデフォルトではFALSEなので、データの返信をオフにすることができます。 /ダニエル・

circle <- function(x, y, r, ...) { 
    ang <- seq(0, 2*pi, length = 100) 
    xx <- x + r * cos(ang) 
    yy <- y + r * sin(ang) 
    polygon(xx, yy, ...) 
} 

venndia <- function(A, B, C, getdata=FALSE, ...){ 
    cMissing <- missing(C) 
    if(cMissing){ C <- c() } 

    unionAB <- union(A, B) 
    unionAC <- union(A, C) 
    unionBC <- union(B, C) 
    uniqueA <- setdiff(A, unionBC) 
    uniqueB <- setdiff(B, unionAC) 
    uniqueC <- setdiff(C, unionAB) 
    intersAB <- setdiff(intersect(A, B), C) 
    intersAC <- setdiff(intersect(A, C), B) 
    intersBC <- setdiff(intersect(B, C), A) 
    intersABC <- intersect(intersect(A, B), intersect(B, C)) 

    nA <- length(uniqueA) 
    nB <- length(uniqueB) 
    nC <- length(uniqueC) 

    nAB <- length(intersAB) 
    nAC <- length(intersAC) 
    nBC <- length(intersBC) 

    nABC <- length(intersABC) 

    par(mar=c(2, 2, 0, 0)) 
    plot(-10, -10, ylim=c(0, 9), xlim=c(0, 9), axes=FALSE, ...) 
    circle(x=3, y=6, r=3, col=rgb(1,0,0,.5), border=NA) 
    circle(x=6, y=6, r=3, col=rgb(0,.5,.1,.5), border=NA) 
    circle(x=4.5, y=3, r=3, col=rgb(0,0,1,.5), border=NA) 

    text(x=c(1.2, 7.7, 4.5), y=c(7.8, 7.8, 0.8), c("A", "B", "C"), cex=3, col="gray90") 

    text(
     x=c(2, 7, 4.5, 4.5, 3, 6, 4.5), 
     y=c(7, 7, 2 , 7 , 4, 4, 5), 
     c(nA, nB, nC, nAB, nAC, nBC, nABC), 
     cex=2 
    ) 

    if(getdata){ 
     list(A=uniqueA, B=uniqueB, C=uniqueC, 
      AB=intersAB , AC=intersAC , BC=intersBC , 
      ABC=intersABC 
     ) 
    } 
} 
9

Vennerable package on R-forgeがあります。

source("http://bioconductor.org/biocLite.R") 
biocLite(c("graph", "RBGL", "gtools", "xtable")) 
install.packages("Vennerable", repos="http://R-Forge.R-project.org") 

Venn diagram

6

これは非常に遅れていますが、それは他の人が答えを探しに役立つ可能性があります:CRAN hereに、 VennDiagram

これは、複数セット(vennでは4セット、オイラー図では3セット)、カスタマイズ可能な色とフォント、単純な構文、そしてサークルのすべてのサイズの中から、データセットのサイズに比例します2つのデータセットを比較する場合)。インストールするには:

install.packages("VennDiagram") 
library(VennDiagram) 

をbioconductorパッケージを使用して、ゲノム座標で働く人々のために、最近、ベン図は、パッケージChIPpeakAnno(バージョン2.5.12)でimplementedたとインスタンスのためのゲノム座標のかなり交差点、チップ-seqのを可能にピーク。早期採用者の場合は、development packageをインストールする必要があります。ここ

peaks1 = RangedData(IRanges(start = c(967654, 2010897, 2496704), 
    end = c(967754, 2010997, 2496804), names = c("Site1", "Site2", "Site3")), 
    space = c("1", "2", "3"), strand=as.integer(1),feature=c("a","b","f")) 

peaks2 = RangedData(IRanges(start = c(967659, 2010898,2496700,3075866,3123260), 
    end = c(967869, 2011108, 2496920, 3076166, 3123470), 
    names = c("t1", "t2", "t3", "t4", "t5")), 
    space = c("1", "2", "3", "1", "2"), strand = c(1, 1, -1,-1,1), feature=c("a","b","c","d","a")) 

makeVennDiagram(RangedDataList(peaks1,peaks2, peaks1, peaks2), NameOfPeaks=c("TF1", "TF2","TF3", "TF4"), 
    totalTest=100,useFeature=TRUE, main="Venn Diagram", 
    col = "transparent",fill = c("cornflowerblue", "green", "yellow", "darkorchid1"), 
    alpha = 0.50,label.col = c("orange", "white", "darkorchid4", "white", "white", "white", "white", "white", "darkblue", "white", "white", "white", "white", "darkgreen", "white"), cat.col = c("darkblue", "darkgreen", "orange", "darkorchid4")) 
+0

vennDiagramで最大5つのセットが可能 – OganM

+0

私は論文に行って、それは '最大4つのセットと3つまでのセットを持つオイラーのダイアグラム 'です。 – fridaymeetssunday

+1

バージョン1.6.16では、 'VennDiagram'には' draw.quintuple.venn() 'という関数があり、これは5つのセットのベン図を描画します。 –

0

3変数データのための別のバージョンへの参照である: http://elliotnoma.wordpress.com/2011/02/09/venn-diagram/

コードパッケージcolorfulVennPlotにも利用可能である:ベンダイアグラムパッケージの http://cran.r-project.org/web/packages/colorfulVennPlot/index.html

+2

このサイトでは、回答の有用な点をこのサイトに投稿する必要があります。また、あなたの投稿のリスクは「回答していません」(http://meta.stackexchange.com/q/8259)として削除される可能性があります。必要に応じてリンクを含めることができますが、「参照」としてのみリンクを含めることができます。答えは、リンクを必要とせずに単独で立つべきです。 –