VennDiagram: a package for generation of highly-customizable Venn and Euler diagrams in R

VennDiagram パッケージのほぼ全てのグラフィックオプションはパラメータ化されてカスタマイズできるようになっている. デフォルト値は感覚的な図を生成するために選択されているので、単純なケースでは高度なカスタマイズは必要ない。 図1は、パラメータ化の多様性を示している。 4つの主要なグラフィックパラメーターグループが存在する:Shape-fill、Shape-line、Labels、Titles。 Shape-fillは、各円や楕円の中の色を指します。 R環境で利用可能なすべての色を使用でき、アルファブレンディングは図形ごとに調整できます。 シェイプラインは、各円や楕円を囲む線です。 この線は、全くないもの(図1C)、実線(図1A、1B)、その他Rで利用可能な線種(図1D)があります。 色は変えることができ、それぞれの形状は別々のパラメータを持つことができる。 ラベルは、各円や楕円を説明するキャプションと、その中にある番号の両方を指します。 これも、色、フォントタイプ、フォントサイズをRパラメータでカスタマイズできる。 また、キャプション・ラベルの位置もカスタマイズすることができる。

図1
図1

VennDiagramパッケージが描く4種類のベン図を紹介する。 A) 1セットのベン図で、ラベルのフォントサイズ、ラベルのフォントフェイス、シェイプフィルなどの初歩的なカスタマイズ機能を示している。 B) 2セットのベン図。スケーリング、個別の塗り潰し形状、個別のキャプションラベルの配置など、より高度な機能を持つ。 C) 3 組のベン図。異なる形状線タイプ(”透明”)と、キャプションラベルがエリアラベルに添付されるキャプションラベル配置の “テキスト “オプションが示されている。 D) これまでの機能を組み合わせ、さらにタイトルをカスタマイズできるようにした4枚組のベン図。 ここに示したすべての図を生成するコードは、追加ファイル 3 に含まれている。

これらの特定のグラフィック要素以外にも、VennDiagram には、図の拡大縮小、回転、反転など、多くの汎用オプションがあります。 図の拡大縮小は、部分領域 (四方を曲線で囲まれ、それ以上細分化できない領域) のグラフィックサイズが、各領域内の要素数の数値に実際に対応する Venn ダイアグラムを表示する目的で実装されたものである。 2集合のベン図と一部の3集合のベン図の拡大縮小は可能であるが、すべての3集合のケースでこれを可能にするための課題については後述する。 スケーリングの使用により、重なり合った領域が小さすぎて数値ラベルがつけられないことがある。 図2、1行目、1列目は、このような場合に特別な処理を可能にする、プログラムによって生成された接続線である。 多数のオイラー図を自動認識する機能が実装されているが、このモードは関数呼び出しパラメータで無効にでき、代わりに標準的なベン図を描くことができる。 図2、1行目、2列目、3列目に2集合のオイラー図の例を示す。 2行目と3行目には、実装された3セットオイラー図のサブセットを示し、3行目にはスケーラブルなものを示しています。 図2は、図間の構成の違いを強調するために白黒で表示されていますが、図1で使用されたグラフィカルなパラメータとカスタマイズは完全に利用可能であることに注意してください。 VennDiagramのデフォルトは高解像度TIFFファイルへの書き込みですが、filenameパラメータをNULLに設定すると、生のグリッドオブジェクトを返し、Rで利用できる任意のグラフィックスモードで使用することができます。 すべての図を生成するコードは追加ファイル3に、すべての利用可能なパラメータ化の例は追加ファイル4に示す。

Figure 2
figure 2

選択したベン図特殊例とVennDiagramパッケージで描画したオイラー図形。 1 行目、1 列目: 2 集合ベン図において、個々の部分領域が小さくなりすぎた場合に、部分領域の表示を最適化するために自動的に描かれる、カスタマイズ可能な線。 1行目、2列目:2集合のオイラー図において、一方の集合を完全に包含して表示する。 1行目、3列目:2つの異なる集合を示す2集合のオイラー図。 2行目、1列目:3集合のオイラー図。1つの集合は離散的な要素を持たない。 2行目、2列目:離散的な要素を持たない1つの集合が、他の2つの集合のいずれかに完全に含まれる3集合のオイラー図。 2行目3列目:2つの集合が離散的要素を持たず、より大きな第3の集合に含まれる3集合のオイラー図。 第3行第1列:第3の集合とは異なる2つの集合が完全に含まれる3集合のオイラー図。 3行目、2列目:ある集合が別の集合に完全に含まれ、その集合自体が3番目の集合に完全に含まれる3集合のオイラーダイアグラム。 3行目2列目:3つの異なる集合を示す3集合のオイラー図。 ここに示したすべての図を生成するコードは、追加ファイル 3 に含まれている。

Discussion

VennDiagram パッケージの開発中に、円を使って正確でスケールの大きい 3 組の Venn 図を描くことは不可能であることが発見された。 この難問は次のようなシナリオで説明される。 二つの円A、Bの系において、面積(それぞれAA、AB)と交点面積(AA∩AB)が共に分かっていれば、円の中心間の距離dABを求めることができる。 これは、2つの円の系では、1つのAA∩ABがdABの一意の値に対応するためである。 したがって、3つの円A、B、Cのシステムでは、AA、AB、AC、AA∩AB、AA∩AC、AB∩ACがすべてわかっていれば、dAB、dBC、dACは計算できる。 しかし、dAB, dBC, dACは一意の三角形を作り、全体の交点AA ∩ AB ∩ ACを知ることなくベン図が描けることを意味している。 言い換えれば、3つの円の重なりの大きさは、拡大縮小されたベン図の表示を変えることはなく、1つの系が全体の交点をゼロにしても(つまり、AA ∩ AB ∩ AC = 0)、面積は変わりません! この難問は、集合の大きさを表すのに(任意に)円を選んだために、自由度が1つ減ってしまったことに起因している。 楕円や多角形を使ってベン図を描けば一意な解が得られるが、円形のベン図が持つ瞬時の認識性や親しみやすさが失われ、情報を便利に表示する意味が失われてしまう。 また、非円形の図では、図形の位置や大きさを計算するための反復アルゴリズムが必要となり、他の人が議論しているように、計算負荷が非常に高くなる。 そのため,VennDiagram パッケージでは,3集合の Venn ダイヤグラムの拡大縮小は無効になっています. 同様に、4つ以上のセットを含む Venn Diagram は、直感的な視覚化には複雑すぎるため、VennDiagram パッケージでは実装されていない。

Euler 図を使う際の一般的な注意点は、いくつかの Venn Diagram のグラフィックの複雑さは軽減されるが、その伝統的でない形状も場合によっては認識しにくくなるかもしれないことである。 空の領域が存在する場合、ユーザーはVenn Diagramの親しみやすさとオイラー・ダイアグラムの精度向上のどちらかを選択する必要がある。 図 3 は、ユーザーの好みによってベン図またはオイラー図のいずれかが適切である状況を示している。

Figure 3
figure3

同じ仮想集合に対するオイラー図とベン図を並べて比較した図。 A) オイラー図は非ゼロ領域のみを表示するので、より正確なグラフが描ける。 B) ベン図は、存在しない領域を内容ゼロの領域として表示する。

VennDiagram パッケージは全ての2集合オイラー図と、考えられる全ての3集合オイラー図の大部分を取り扱うことができます。 円や楕円を使って描けないような 3 集合オイラー図はサポートされていません。 例えば、交差しない2つの集合が第3の集合を構成する場合のオイラー図は、多角形は描けますが、円や楕円は描けません。 この種の図は解析的なレイアウトが整っておらず、反復的なフィッティングが必要となる。多角形を必要とするオイラー図は存在しないが、標準的なベン図はこれらの少数のサポートされていないケースに対して利用可能である。

Venn Diagramを生成できる他のプログラム(表1)と比較した結果、VennDiagramパッケージの利点は以下の通りである。

  • 円や楕円を用いたオイラー図を2セットまたは3セットで描けること

  • よりエレガントな図を生成するためのカスタマイズ性があること

  • 広く普及している統計環境Rの利用

  • 論文で定番の高解像度TIFFファイルの生成

表1 ベン図生成ソフトの各機能比較。

コメントを残す

メールアドレスが公開されることはありません。