Estoy haciendo algo de teoría gráfica en python usando el paquete networkx. Me gustaría agregar los pesos de los bordes de mi gráfico a la salida del gráfico. ¿Cómo puedo hacer esto?
Por ejemplo, ¿cómo modificaría el siguiente código para obtener el resultado deseado?
import networkx as nx import matplotlib.pyplot as plt G=nx.Graph() i=1 G.add_node(i,pos=(i,i)) G.add_node(2,pos=(2,2)) G.add_node(3,pos=(1,0)) G.add_edge(1,2,weight=0.5) G.add_edge(1,3,weight=9.8) pos=nx.get_node_attributes(G,'pos') nx.draw(G,pos) plt.savefig("path.png")
Me gustaría que aparecieran 0.5 y 9.8 en los bordes a los que se refieren en el gráfico.
Tendrá que llamar a nx.draw_networkx_edge_labels()
, lo que le permitirá … dibujar tags de borde de networkX 🙂
EDITAR: fuente modificada completa
#!/usr/bin/python import networkx as nx import matplotlib.pyplot as plt G=nx.Graph() i=1 G.add_node(i,pos=(i,i)) G.add_node(2,pos=(2,2)) G.add_node(3,pos=(1,0)) G.add_edge(1,2,weight=0.5) G.add_edge(1,3,weight=9.8) pos=nx.get_node_attributes(G,'pos') nx.draw(G,pos) labels = nx.get_edge_attributes(G,'weight') nx.draw_networkx_edge_labels(G,pos,edge_labels=labels) plt.savefig()