web-dev-qa-db-fra.com

Python Diagramme de Matplotlib Venn

Je veux tracer des variables qui appartiennent à certains groupes.

Disons que j'ai 6 variables que je veux trier dans ces 3 groupes et tracer comme un diagramme de Venn. Je voudrais annoter les noms de variables dans les trois bulles.
Dans cet exemple simple, nous pourrions dire que 1 variable est dans le groupe 1, 3 variables dans le groupe 2 et 2 variables dans le groupe 3.

Quelqu'un pourrait-il m'aider avec un exemple simple de la façon de le faire dans matplotlib?

30
jonas

Il existe un magnifique module complémentaire de diagramme de Venn pour matplotlib appelé matplotlib-venn . Il semble qu'il puisse être complètement personnalisé pour faire ce que vous cherchez, de la taille des cercles (proportionnelle à la taille définie), aux étiquettes intérieures et extérieures.

L'utilisation de l'exemple de code sur le site Web donne un tracé comme:

enter image description here

Modifier: Selon les commentaires ci-dessous, le code suivant donne des cercles sans chevauchement avec du texte utilisant la même bibliothèque:

import pylab as plt
from matplotlib_venn import venn3, venn3_circles

v = venn3(subsets=(1,1,0,1,0,0,0))
v.get_label_by_id('100').set_text('First')
v.get_label_by_id('010').set_text('Second')
v.get_label_by_id('001').set_text('Third')
plt.title("Not a Venn diagram")
plt.show()

Donne le schéma:

enter image description here

49
Hooked