Je fais une théorie des graphes en python en utilisant le package networkx. Je voudrais ajouter les poids des bords de mon graphique à la sortie du tracé. Comment puis-je faire cela?
Par exemple, comment modifier le code suivant pour obtenir la sortie souhaitée?
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")
Je voudrais que 0,5 et 9,8 apparaissent sur les bords auxquels ils se réfèrent dans le graphique.
Vous devrez appeler nx.draw_networkx_Edge_labels()
, ce qui vous permettra de ... dessiner des étiquettes networkX Edge :)
EDIT: source entièrement modifiée
#!/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(<wherever>)