/pyvenn

2 ~ 6 sets venn diagram for python

Primary LanguagePythonThe UnlicenseUnlicense

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