2017-03-17 1 views
1

私は以下の作業コードを持っています。Python:Venn diagram:ダイアグラムの内容を表示するには?

from matplotlib import pyplot as plt 
import numpy as np 
from matplotlib_venn import venn3, venn3_circles 
Gastric_tumor_promoters = set(['DPEP1', 'CDC42BPA', 'GNG4', 'RAPGEFL1', 'MYH7B', 'SLC13A3', 'PHACTR3', 'SMPX', 'NELL2', 'PNMAL1', 'KRT23', 'PCP4', 'LOX', 'CDC42BPA']) 

Ovarian_tumor_promoters = set(['ABLIM1','CDC42BPA','VSNL1','LOX','PCP4','SLC13A3']) 

Gastric_tumor_suppressors = set(['PLCB4', 'VSNL1', 'TOX3', 'VAV3']) 
#Ovarian_tumor_suppressors = set(['VAV3', 'FREM2', 'MYH7B', 'RAPGEFL1', 'SMPX', 'TOX3']) 
venn3([Gastric_tumor_promoters,Ovarian_tumor_promoters, Gastric_tumor_suppressors], ('GCPromoters', 'OCPromoters', 'GCSuppressors')) 

venn3([Gastric_tumor_promoters,Ovarian_tumor_promoters, Gastric_tumor_suppressors], ('GCPromoters', 'OCPromoters', 'GCSuppressors')) 
plt.show() 

どのようにこれらの3つの円のセットの内容を表示できますか?色アルファは0.6です。すべてのシンボルを収容するには、円が大きくなければなりません。

答えて

2

可能な組み合わせの組み合わせに対して自動的にこれを行う簡単な方法はありません。 (v.get_label_by_id('001')リターンmatplotlibのTextオブジェクトと同様の方法、そしてあなたがあなたの好みに合わせてそれらを構成するのは自由です

A = set(['DPEP1', 'CDC42BPA', 'GNG4', 'RAPGEFL1', 'MYH7B', 'SLC13A3', 'PHACTR3', 'SMPX', 'NELL2', 'PNMAL1', 'KRT23', 'PCP4', 'LOX', 'CDC42BPA']) 
B = set(['ABLIM1','CDC42BPA','VSNL1','LOX','PCP4','SLC13A3']) 
C = set(['PLCB4', 'VSNL1', 'TOX3', 'VAV3']) 

v = venn3([A,B,C], ('GCPromoters', 'OCPromoters', 'GCSuppressors')) 

v.get_label_by_id('100').set_text('\n'.join(A-B-C)) 
v.get_label_by_id('110').set_text('\n'.join(A&B-C)) 
v.get_label_by_id('011').set_text('\n'.join(B&C-A)) 
v.get_label_by_id('001').set_text('\n'.join(C-A-B)) 
v.get_label_by_id('010').set_text('') 
plt.annotate(',\n'.join(B-A-C), xy=v.get_label_by_id('010').get_position() + 
      np.array([0, 0.2]), xytext=(-20,40), ha='center', 
      textcoords='offset points', 
      bbox=dict(boxstyle='round,pad=0.5', fc='gray', alpha=0.1), 
      arrowprops=dict(arrowstyle='->',    
          connectionstyle='arc',color='gray')) 

注:あなたがあなたの特定の例ではいくつかの手動チューニングを行う準備ができている場合は、そのようなことで始まりますたとえば、set_fontsize(8)などを呼び出してフォントサイズを変更できます)。

関連する問題