9

セットサイズに応じて3つの交差セットを含むベン図の円をスケーリングするRパッケージVennDiagramを取得する方法を知っている人はいますか?

venneular パッケージを使用してこのようなスケーリングを実現できますが、VennDiagram と比較して、他のグラフィカル オプションに関してこれは少し制限されていることがわかります。

VennDiagram パッケージのドキュメントでは、引数 'scaled' を TRUE に設定するとうまくいくはずですが、これにより同じサイズの 3 つの円が生成されることがわかりました。

パッケージのドキュメントは、スケーリングされた引数が特定の図でのみ機能する可能性があることを不可解に示唆しています。

?draw.triple.venn

明らかにする:

scaled: "設定されたサイズに従って特定のオイラー図の円のサイズをスケーリングするかどうかを示すブール値"

?venn.diagram

#Argument Venn Sizes    Class    Description
#scaled    2, 3         logical  Enable scaling for two-set and certain three-set Euler diagrams.

私のコードのおもちゃの例:

require(VennDiagram)

venn.plot <- draw.triple.venn(
    area1 = 70,
    area2 = 250,
    area3 = 500,
    n12 = 30,
    n23 = 60,
    n13 = 10,
    n123 = 5,
    category = c("C1", "C2", "C3"),
    fill = c("blue", "red", "green"),
    scaled=TRUE)

tiff(filename = "test.tiff", compression = "none",type = "quartz",antialias = "none")
grid.draw(venn.plot)
dev.off()

同様に、「venn.diagram」関数を使用するこのコードは、必要なスケーリングを生成しません。

venn.diagram(x=list(A=c(1:15,16:20), B=c(6:15,21:30,100:150), C=c(11:30,200:300)),
         filename="test.tiff",
         fill = c("blue", "yellow", "red"), scaled=TRUE)

どうもありがとう

ジム

4

5 に答える 5

5

したがって、私自身の質問に答えるために: 特定の構成では、円を使用してスケーリングされた 3 方向の Venn を作成することは数学的に不可能です。

于 2012-08-13T13:47:27.347 に答える
4

データの視覚的表現が誤解を招く可能性があるため、3 セット ベン図の一般的なスケーリングは無効になっています。

次の 2 つのツールを使用してみてください。

http://bioinformatics.psb.ugent.be/webtools/Venn/ http://bioinfogp.cnb.csic.es/tools/venny/index.html

また、あなたの質問に対して、次の注意事項をお読みください。

重要な点は、draw.triple.venn でoverrideTripleを設定することです。

euler.d == TRUE の場合、オイラー線図は 19 の特殊なケースに対して描画されます。特定のオイラー図では、必要に応じて、2 セットのベン図に固有の scaled、sep.dist、または offset 引数を使用します。この関数はデフォルトで、3 つの円を上に 2 つのセット、下に 1 つのセットを持つ三角形の配置に配置します。円は、area1、area2、area3 に時計回りに対応し、area1 が左上になります。注: データの視覚的表現が誤解を招く可能性があるため、3 セットのベン図の一般的なスケーリングは無効になっています。再度有効にするには、変数overrideTripleに任意の値を割り当てます

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

于 2015-07-10T20:02:54.130 に答える
4

私の解決策:

overrideTriple=T
draw.triple.venn(9, 20, 30, 2, 10, 3, 2, category =
               rep("", 3), rotation = 1, reverse = FALSE, euler.d = F, scaled = F)
于 2018-12-04T13:55:52.020 に答える
1

代わりにヴェネラブルを使用します。Venn オブジェクトへのデータの読み込みはやや複雑ですが、加重/スケーリングされた 3 セットのダイアグラム + グラフィック オプションを生成します。

于 2013-02-07T07:39:33.750 に答える