📊 © Derechos Reservados - Esteban Arroyo 2025

🔄 Explorador Visual de Equivalencias de Conjuntos con Diagramas de Venn

Equivalencia Ejemplo Gráfico
Diagrama Venn
packages = ["matplotlib"] import asyncio import random import json from js import document, fetch from pyodide.ffi import create_proxy from js import Option # Importar constructor de opciones HTML async def cargar_equivalencias(): response = await fetch("equivalencias.json") texto = await response.text() return json.loads(texto) async def main(): equivalencias = await cargar_equivalencias() select = document.getElementById("opciones") for clave, info in equivalencias.items(): opcion = Option.new(info["titulo"], clave) select.appendChild(opcion) # Actualizar contenido al cambiar opción def actualizar_contenido(event=None): clave = select.value datos = equivalencias[clave] document.getElementById("descripcion").innerHTML = datos["descripcion"] document.getElementById("ejemplo").innerHTML = datos["ejemplo"] img = document.getElementById("img-operacion") img.setAttribute("src", datos["img"]) img.setAttribute("alt", datos["titulo"]) document.getElementById("ejemplo-contextual").innerHTML = "" def generar_ejemplo_contextual(equivalencias, select): clave = select.value ejemplos = equivalencias[clave].get("ejemplos_contextuales", []) if ejemplos: elegido = random.choice(ejemplos) document.getElementById("ejemplo-contextual").innerHTML = f"📌 {elegido}" else: document.getElementById("ejemplo-contextual").innerHTML = "No hay ejemplos contextuales disponibles." # Inicializar en la primera carga document.getElementById("opciones").addEventListener("change", create_proxy(actualizar_contenido)) actualizar_contenido() # Evento para el botón btn = document.getElementById("generar-ejemplo") btn.addEventListener("click", create_proxy(lambda e: generar_ejemplo_contextual(equivalencias, select))) asyncio.ensure_future(main())