web-dev-qa-db-fra.com

Ajouter des poids de contour pour tracer la sortie dans networkx

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.

19
smilingbuddha

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>)
24
Marcus Müller