es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python: igraph – establecer el valor de vertexseq a ninguno a uno específico

Quiero aprender más sobre la biblioteca igraph. Quiero crear un grafo simple con dos nodos etiquetados en momentos diferentes. En el tutorial de igraph (https://igraph.org/python/tutorial/latest/tutorial.html) he encontrado que es posible etiquetar la lista después de generar el grafo. Funciona con el siguiente código:

from igraph import *

p = Graph()
p.add_vertices(1)
p.vs["label"] = ["test", "test1"]
layout = p.layout("kk")
plot(p, layout=layout)

Pero, ¿qué sucede si quiero etiquetar el grafo paso a paso? Esto significa que quiero agregar algunos vértices primero y luego etiquetarlos. Luego realizar algunos cálculos, agregar otros vértices y etiquetarlos después de agregarlos sin perder los primeros. Acabo de intentarlo con el siguiente código, pero por alguna razón no funciona como quiero. ¿Cómo puedo solucionarlo?

from igraph import *

p = Graph()
p.add_vertices(1)
p.vs["label"] = ["test"]

p.add_vertices(1)
p.vs["label"][1] = "test1"
layout = p.layout("kk")
plot(p, layout=layout)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para etiquetar el gráfico paso a paso, puedes utilizar el siguiente código:

    from igraph import *
    
    # crear un grafo vacío
    p = Graph()
    
    # añadir el primer vértice y etiquetarlo
    p.add_vertices(1)
    p.vs[0]["label"] = "prueba"
    
    # añadir el segundo vértice y etiquetarlo
    p.add_vertices(1)
    p.vs[1]["label"] = "prueba1"
    
    # añadir aristas entre los dos vértices
    p.add_edges([(0, 1)])
    
    # establecer el diseño y graficar el gráfico
    layout = p.layout("kk")
    plot(p, layout=layout)
    

    Este código añade los vértices y los etiqueta uno por uno, luego añade una arista entre ellos. Finalmente, establece el diseño y grafica el gráfico. La diferencia clave es que utiliza el índice del vértice en la lista p.vs para etiquetar cada vértice individualmente.

Comments are closed.