3

Rで4方向ベン図を作成しようとしています.図に入れたいこのデータがあります:

ここに画像の説明を入力

誰かが私にそれを行う方法を提案できますか? 関数 vennDiagram() を使用しようとしましたが、4way ダイアグラムであるため機能しません。

パッケージ VennDiagram も使用しようとしていますが、データがダイアグラムの適切な場所に「割り当てられる」方法が本当に混乱しています。私はこのコードを使用しています:

library (VennDiagram)
venn.diagram(
    x=list(
    I=c(1:18,19:31,32:119,125:129,130:192,193:144,145:326,327:373),
    VI=c(516:542,510:515,420:497,498:509,145:326,327:373,130:192,193:144),
    II=c(19:31,32:119,145:326,327:373,374:378,378:419,420:497,498:509),
    III=c(506:509,378:419,32:119,125:129,130:192,145:326,420:497,510:515)
    ),
    filename = "4Way_Venn.tiff",
    col = "black",
    lty = "dotted",
    lwd = 4,
    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"),
    cex = 2.5,
    fontfamily = "serif",
    fontface = "bold",
    cat.col = c("darkblue", "darkgreen", "orange", "darkorchid4"),
    cat.cex = 2.5,
    cat.fontfamily = "serif"
    );

誰でも私を助けることができますか?おそらく、VennDiagram パッケージを使用したソリューションよりも簡単なソリューションを使用できます。

4

4 に答える 4

4

ここでポイントを逃しているかもしれませんが、ベン図を作成する際にこれらの「カウント」をどのように使用したいかわかりませんか? 「c1」から「c4」までの列から、 venneulerパッケージを使用して非常に簡単にベン図を作成できます。

require(venneuler)
#here I replicate your data
#because it's repeatable, you can use `rep` function to generate it
c1 <- rep(c(0,1),each=8)
c2 <- rep(c(0,1),each=4,times=2)
c3 <- rep(c(0,1),each=2,times=4)
c4 <- rep(c(0,1),times=8)
#put your data into matrix
m <- as.matrix(data.frame(C1=c1,C2=c2,C3=c3,C4=c4))
#plot it
v = venneuler(m)
plot(v)

ここに画像の説明を入力

于 2012-04-11T19:03:07.687 に答える
3

注意してください: 私は、そのような機能をサポートするいくつかのパッケージで 4 (およびそれ以上) 方向のベン図を作成しようとしましたが、少なくとも 1 つのケースで部分空間が正しく描画されませんでした。たとえば、別のサブセットに完全に含まれているサブセットは、その領域の一部が親サブセットの外側に拡張されて描画されました。残念ながら、どのパッケージでそれが行われたかは覚えていません。
したがって、私の答えは次のとおりですvenneuler。GOA が言ったように試してくださいrequire(sos); ???venn。各パッケージを慎重にテストして、交差点が正しくレンダリングされていることを確認してください。

于 2012-04-11T19:18:53.483 に答える
0

VennDiagram パッケージには、draw.quad.venn() 関数である 4 方向の Venn 用の関数があります。

http://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf

于 2014-08-08T09:45:46.937 に答える