2012-01-03 12 views
46

私は以下のタイプのカウントデータを持っています。ベン図の比例と半透明の色合い

A 450 
B 1800 
A and B both 230 

私は、次のベン図のようなカラフルな(おそらく半透明の)交差点を開発したいと考えています。

enter image description here

注:この図は、PowerPointで描かれた例示的な手であり、一定の縮尺ではありません。

+0

で同じRパッケージのための光沢のあるアプリケーションを試みることができます。 findFn( "venn") 'とあなたがどれくらい距離を取るかを見てください。 –

+0

または* venneuler *パッケージを使用してください –

答えて

45

ここには、Venn diagram from list of clusters and co-occurring factorsについて説明する投稿があります。簡単な解決策の使用パッケージvenneulerについては

require(venneuler) 
v <- venneuler(c(A=450, B=1800, "A&B"=230)) 
plot(v) 

enter image description here

より高度でカスタマイズされたソリューションの場合は、パッケージVennDiagramを確認してください。

+0

境界線を黒で表示することはできますか?ソリューションのためのThnaks。 – jon

+0

@ジョン:良いフォームは、最初にVennDiagramとvenneulerのヘルプファイルを読み、慎重に書式設定やその他のオプションについて尋ねるだけです。 –

+0

@John「venneuler」には「境界」引数がありませんが、境界線を作る 'venneuler'オブジェクト(中心と直径を持っています)の値に基づいて円を描くことができます。私は、これが機能上実装するのが難しいとは思わない。 –

39

Geek On Acidの2番目の提案(もう一度感謝します)の2番目の回答に基づいて、私はラインの問題も解決できました。これが他のグーグルと関係がある場合は、私は投稿しています!

require(VennDiagram) 
    venn.diagram(list(B = 1:1800, A = 1571:2020),fill = c("red", "green"), 
    alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,lty =2, fontfamily =3, 
    filename = "trial2.emf"); 

enter image description here

+0

こんにちは、私は 'vennDiagram(sub、cex = ..、lwd = 2、 circle.col = ...) 'そして、あなたが言及したように' fill'を試してみると、それはプロンプトを出します:1: 'fillはグラフィカルなパラメータではありません'これはvennDiagramバージョンの問題ですか?この場合、あなたは正しい '塗りつぶし'をしますか?ありがとうございました – PGreen

+0

@PGreen私はちょうど私のために働いています。最新のバージョンの2.15.2でvennDiagramが動作しました.... – jon

+3

@PGreenジョンがvennを使用しているのに対し、limmaパッケージからvennDiagramを使用していると思われます。 vennDiagramパッケージの図。 vennDiagramにfill引数がないため、エラーが発生しています。 – sage88

11

これは完全にあなたの質問に答えるdoes notのにもかかわらず。私はこれがVenn Diagramをプロットしようとしている他の人にとって有益だと考えました。 一つはgplotsパッケージからベン()関数を使用することができます。

## modified slightly from the example given in the documentation 
## Example using a list of item names belonging to the 
## specified group. 
## 
require(gplots) 
## construct some fake gene names.. 
oneName <- function() paste(sample(LETTERS,5,replace=TRUE),collapse="") 
geneNames <- replicate(1000, oneName()) 

## 
GroupA <- sample(geneNames, 400, replace=FALSE) 
GroupB <- sample(geneNames, 750, replace=FALSE) 
GroupC <- sample(geneNames, 250, replace=FALSE) 
GroupD <- sample(geneNames, 300, replace=FALSE) 

venn(list(GrpA=GroupA,GrpB=GroupB,GrpC=GroupC,GrpD=GroupD)) 

enter image description here http://www.inside-r.org/packages/cran/gplots/docs/venn

は、その後私はイラストレーターを使用して色や透明度を追加します。 enter image description here

+1

こんにちは!あなたはイラストレーターを使って何を意味するのか黙っていますか?あなたはAdobe Illustratorを意味しますか、またはRを使用するだけで上記の図を達成する方法はありますか? –

+1

申し訳ありません私の悪い!私はAdobe Illustratorを使うことを意味しています – ktyagi

3

私はOPがRの解決策を尋ねていることを知っていますが、BioVennというWebベースのソリューションを指摘したいと思います。

enter image description here

この図では、私は(フォトショップを介して)手動で変更されました。このように - それは、要素の3個のリストを取り、各表面要素の数に比例するようにベン図を描きます私がBioVennが選んだ場所が好きではないので、数字の配置。しかし、あなたは数字を持っていないことを選ぶことができます。

理論上、BioVennで使用されるリストは遺伝子IDで構成されますが、実際には関係ありません。リストには文字列を入れるだけです。

+2

「この図では、私はBioVennが選択した場所が好きではないので手動で(PhotoShop経由で)番号の配置を変更しましたが、番号を持たないことを選択できます。実際、BioVennでは、あなたが望む場所に数字をドラッグ&ドロップするだけです。 No PhotoShop needed :-) –

19

私は最近新しいRパッケージeulerrを発行しました。これはあなたが望むことを実行します。それはvenneulerと非常に似ていますが、その矛盾はありません。

library(eulerr) 
fit <- euler(c(A = 450, B = 1800, "A&B" = 230)) 
plot(fit) 

eulerplot

や `ライブラリー( "SOS")で起動しないのはなぜあなたはeulerr.co

shiny-euler

+0

アニメーションの光沢のあるアプリが私のために取引を封印 – Megatron

+1

優れたパッケージ。マイナーな欠陥imhoはデフォルトのカラースキームで、最初のセットとバックグラウンドで白を使用しているため、コントラストが欠けています。 また、提供されたコードスニペットは、最新のR/packageバージョンでは同じ結果を与えていません。 –

+0

ありがとうございます。コードスニペットとそれが生成する図形を更新しました。私は配色に関してあなたに同意しません。背景とのコントラストは、通常、主要な関心事ではなく、白は他のほとんどの色、特にサークル上のラベルと非常によく対照をなしています。 –

関連する問題