Dibujar gráfico en Python con Networkx
Tengo dos listas donde la primera lista tiene los nodos y la segunda lista tiene la distancia entre los nodos (valores). ¿Cómo dibujar un grafo en Networkx usando esas listas?
primera lista:
[0, 1, 2, 3]
segunda lista:
[0.0009, 0.3338, 0.1880, 0.3342, 0.1883, 0.1488]
Mi código:
dicts = {}
keys = range(4)
for i in keys:
dicts[i] = values[i]
print(dicts)
g = torch_geometric.utils.to_networkx(data, to_undirected=True)
plt.figure(len(data))
nx.draw(g, pos=dicts, with_labels=True)
plt.show()
Obtuve esta salida:
{0: 0.000926, 1: 0.33381733, 2: 0.18802813, 3: 0.33418187}
NetworkXError: El nodo 4 no tiene posición.
davy.ai
Para dibujar un grafo en Networkx con las dos listas dadas, sigue los pasos a continuación:
En la lista
edges
, los dos primeros elementos de cada tupla representan los nodos conectados por la arista, mientras que el tercer elemento representa la distancia entre ellos.Crea un objeto de grafo en Networkx y añade los nodos y aristas a él:
La variable
pos
utiliza el algoritmo de disposición del muelle para posicionar los nodos en el grafo. El parámetrowith_labels
en la funciónnx.draw
agrega las etiquetas de nodos al grafo. La funciónnx.draw_networkx_labels
agrega las etiquetas a los nodos utilizando el diccionariolabels
.El código completo para dibujar el grafo en Networkx se muestra a continuación: