Python으로 venn diagram 그리기
python으로 venn diagram을 그릴 수 있게 해주는 matplitlab의 venn2, venn3은 그룹 3개를 최대로 그릴 수 있다. 하지만 분석을 하다보면 4,5,6개 그룹으로 이루어진 venn diagram을 그려야 하는 경우도 많이 생긴다.
일반적인 2,3개 그룹으로 이루어진 venn diagram을 다음과 같이 그릴 수 있다.
from matplotlib import pyplot as plt
from matplotlib_venn import venn2, venn3
venn3([{1,2,3,4}, {2,3,5,6}, {2,6,8}], ('A', 'B', 'C'))
plt.title('Venn Diagram')
plt.show()
그리고, 4개 이상의 그룹으로 이루어진 venn diagram을 그리려면 pyvenn 모듈을 설치해야한다. 안타깝게 pip로는 설치 할 수 없고, github에서 소스파일을 다운로드 가능하다.
아래는 그룹이 4개인 venn diagram 그리기
import sys
sys.path.insert(0, '.../pyvenn') #pyvenn이 파이썬 path에 들어가 있지 않아서 추가함
import venn
%matplotlib inline
labels = venn.get_labels([{1,2,3,4}, {2,3,5,6}, {1,6,3,9}, {7,4,9,11}], fill=['number']
fig, ax = venn.venn4(labels, names=['A', 'B', 'C', 'D'])
fig.show()
같은 방법으로 그룹이 5, 6개인 것도 그릴 수 있다.
labels = venn.get_labels([{1,2,3,4}, {2,3,5,6}, {1,6,3,9}, {7,4,9,11}, {11, 1, 12}], fill=['number'])
fig, ax = venn.venn5(labels, names=['A', 'B', 'C', 'D', 'E'])
fig.show()
labels = venn.get_labels([{1,2,3,4}, {2,3,5,6}, {1,6,3,9}, {7,4,9,11}, {11, 1, 12}, {100,50, 1,2,5,6}], fill=['number'])
fig, ax = venn.venn6(labels, names=['A', 'B', 'C', 'D', 'E', 'F'])
fig.show()