Ir al contenido principal

cómo hacer un diagrama de Venn con Python

Hay veces que en la escuela o en nuestro trabajo necesitamos hacer análisis con diagramas de Venn . 

Estos diagramas son muy utilizados en la parte de estadística y en la programación. El uso mas práctico en la programación es cuando generamos consultas en una base de datos y queremos obtener datos de varias tablas al mismo tiempo, en ocasiones queremos todos los datos que se unen en las tablas, hay veces que queremos saber los datos que no se unen entre las dos tablas y para poder representar esto de manera mas fácil utilizamos los diagramas de Venn.
Vamos a representar un ejemplo con 2 tablas en una base de datos, una tabla es estudiantes y otra son materias




Lo que une a estás 3  entidades es un que todos están en una clase por ejemplo hay 1 profesor da la materia matemáticas a 10 alumnos este enunciado representa la unión y en la imagen en el centro de los 3 círculos y la podemos describir como una Clase. La unión entre Estudiantes y Materias podría ser un Kardex, Calificaciones . La intersección entre Profesor y Estudiante, puede ser una lista de asistencia. La unión entre Profesor y Materia puede ser un contrato de clases por ciclo escolar. 

Es decir podemos representar o analizar datos de manera gráfica y ayudar a presentar la información de manera más amigable. 

Esta representación también nos sirve para Datascience donde podemos encontrar relación entre ciertas variables. Por ejemplo identificar a la persona para cubrir un puesto en base a todas sus aptitudes o en una análisis de venta identificar cual es nuestro nicho de mercado para cierto producto. 

En el caso de bases de datos, el tener claro esta relación nos puede ayudar a construir nuestro modelo entidad relación y también saber como vamos a generar nuestras consultas a la base de datos.

Diagramas de Venn con Python


Para poder crear estos diagramas en Python vamos a utilizar la librería matplotlib_venn https://pypi.org/project/matplotlib-venn/.



Primero hay que instalarla, recuerden ir al folder donde instalaron Python y desde una linea de comandos ejecutar pip install matplotlib_venn , o desde Jupyter en su notebook pueden hacerlo.

Vamos hacer el diagrama de Venn de 3 Dataset cada uno va a representar una materia y vamos a tener 3 columnas : Calificación, Genero, ID del estudiante

Primer data set df_A
Dataset df_B


Dataset df_C


Diagrama de Venn con 2 Dataset


Primero vamos hacer el ejemplo con la unión de 2 materias utilizando el df_A y df_B
El diagrama nos dice que entre las 2 materias solo hay en común un alumno. Les comparto el programa

import pandas as pd

import numpy as np

Math_A = pd.Series([76.2,58.4,67.6,56.2,61.4],index=['s1','s2','s3','s4','s5'])
Idiom_A = pd.Series([85.1,90.2,76.8,80.4,78.9],index=['s1','s2','s3','s4','s5'])
data = {'Student_Math': Math_A}
df_A = pd.DataFrame(data)
df_A['Gender'] = ['M','F','M','M','F']
df_A['ID'] = ['1','5','9','20','13']
print(df_A)
data = {'Student_Idiom': Idiom_A}
df_B = pd.DataFrame(data)
df_B['Gender'] = ['M','F','M','M','F']
df_B['ID'] = ['3','7','20','5','12']
print(df_B)
np.random.seed(100)
Chemestry_B = pd.Series(np.random.normal(75.0,12,5),index=['s1','s2','s3','s4','s5'],name = 'Student_Chemestry')

df_C =  pd.concat([Chemestry_B], axis=1)
df_C['Gender'] = ['F','F','F','M','M']
df_C['ID'] = ['4','10','15','2','13']
print(df_B)
from matplotlib_venn import venn3,venn2
from matplotlib import pyplot as plt
plt.figure(figsize=(4,4))
set1 = set(df_A['ID'])
set2 = set(df_B['ID'])


venn2([set1, set2], ('Math', 'Idiom'))
plt.show()

Ahora vamos hacer el diagrama de Venn con 3 materias



El diagrama nos dice que entre el Grupo 1 y 2, tienen un alumno en común, y entre el grupo 3 y grupo 1 hay 2 alumnos en común.
 
Les comparto un video de como se ve la ejecución del programa


Diagramas de Venn con Offices en Word o Power Point


Y si solo necesitas presentar la información de ciertos datos puedes hacer la imagen con las paqueterías de Office o de Google Suite.
Para Word, solo debes buscar en la barra el Menu Insert o Insertar y el icono de SmartArt

Después seleccionar en la sección de Relacion o Relations y ahí encontraras 4 formatos del diagrama de Venn


Y después puedes personalizar tu diagrama, seleccionando diferentes colores y colocando el texto para identificar tus categorías. 

Con Power Point son los mismos pasos Insert - SmartArt - Venn




Espero les sea de utilidad este post y nos compartan. A mi en lo personal me gusto mucho este post, porque fue mi primera vez utilizando esta librería, creo que tiene muchos usos.

Les comparto algunas otras ligas de temas de Python en este blog



Comentarios

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Macro de Excel para abrir archivo csv

Hay veces que quieres abrir un archivo de Excel pero está separado por comas, punto y coma o por un pipe. Hay formas de hacerlos desde Excel. Les quiero compartir algunas opciones de como hacerlo y espero que les sean de utilidad. 1.Es abrir el archivo en Excel y utilizar la función de separar por columnas y seleccionar el delimitador, por ejemplo ";" 2. Es colocar "sep=;" en el primer renglón del archivo que quieres abrir y guardar en formato CSV y abrirlo en Excel y te lo abrirá separado en columnas. 3. Otra forma es con una macro, esté en mi gusto es la que más me funciona porque si hay alguna coma en la descripción o en alguna columna, si lo abres desde Excel te va a desacomodar las columnas.  Este botón te abrirá un pantalla para abrir el archivo que quieres separar y te lo abrirá en una hoja de excel ya separado. El código de la macro es el siguiente  Private Sub CommandButton1_Click() Dim sht As Worksheet Dim fnd As Variant Dim rplc As Variant Dim