import gudhi
import matplotlib.pyplot as plt

# Creamos el SimplexTree (filtración)
st = gudhi.SimplexTree()

# --- Nivel 0 --- (el K_0)
st.insert([0], filtration=0)
st.insert([1], filtration=0)
st.insert([2], filtration=0)

# --- Nivel 1 --- (K_1)
st.insert([0, 1], filtration=1)
st.insert([3], filtration=1)

# --- Nivel 2 --- K_2
st.insert([1, 2], filtration=2)
st.insert([0, 2], filtration=2)

# --- Nivel 3 ---K_3
st.insert([0, 1, 2], filtration=3)
st.insert([1, 3], filtration=3)
st.insert([2, 3], filtration=3)


# Calculamos homología persistente
diag = st.persistence()


# Graficamos diagrama de persistencia y códigos de barra
fig, axes = plt.subplots(1, 2, figsize=(12, 5))

# Código de barras
gudhi.plot_persistence_barcode(diag, axes=axes[0])
axes[0].set_title("Código de Barras")

# Diagrama de persistencia
gudhi.plot_persistence_diagram(diag, axes=axes[1])
axes[1].set_title("Diagrama de Persistencia")

plt.tight_layout()
plt.show()
