2 ~ 6 sets venn diagram for python
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Apr 13, 2016
LICENSE Create LICENSE Jul 6, 2017
README.md bad expression Jul 6, 2017
__init__.py add venn 2~6 and demo Apr 14, 2016
demo.py add demos to readme Apr 14, 2016
venn.py fixed a typo in fontsize Jan 10, 2018

README.md

pyvenn

2 ~ 6 Sets Venn Diagram For Python

Use magic function in ipython notebook:

%matplotlib inline

import venn

Or using non-interactive backend:

import matplotlib
matplotlib.use('Agg')

import venn

Fetch labels of each subset in venn diagram. The input data is an array of iterable data(list, set, etc.).

In [5]: labels = venn.get_labels([
            range(10),
            range(5, 15)
        ], fill=['number', 'logic'])
In [6]: print labels
Out [6]: {'01': '01: 5', '10': '10: 5', '11': '11: 5'}

Plot functions are based on the labels:

fig, ax = venn.venn2(labels, names=['list 1', 'list 2'])
fig.show()

venn2

More examples:

labels = venn.get_labels([range(10), range(5, 15), range(3, 8)], fill=['number', 'logic'])
fig, ax = venn.venn3(labels, names=['list 1', 'list 2', 'list 3'])
fig.show()

venn3

labels = venn.get_labels([range(10), range(5, 15), range(3, 8), range(8, 17)], fill=['number', 'logic'])
fig, ax = venn.venn4(labels, names=['list 1', 'list 2', 'list 3', 'list 4'])
fig.show()

venn4

labels = venn.get_labels([range(10), range(5, 15), range(3, 8), range(8, 17), range(10, 20)], fill=['number', 'logic'])
fig, ax = venn.venn5(labels, names=['list 1', 'list 2', 'list 3', 'list 4', 'list 5'])
fig.show()

venn5

labels = venn.get_labels([range(10), range(5, 15), range(3, 8), range(8, 17), range(10, 20), range(13, 25)], fill=['number', 'logic'])
fig, ax = venn.venn6(labels, names=['list 1', 'list 2', 'list 3', 'list 4', 'list 5', 'list 6'])
fig.show()

venn6