2015-02-06 8 views
8

Robię trochę teorii grafów w Pythonie za pomocą pakietu networkx. Chciałbym dodać ciężary krawędzi mojego wykresu do wyjścia wydruku. Jak mogę to zrobić?Dodaj ciężary krawędzi do drukowania danych wyjściowych w siecix

Na przykład Jak zmodyfikować poniższy kod, aby uzyskać pożądany wynik?

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") 

Chciałbym, aby 0,5 i 9,8 pojawiły się na krawędziach, do których odnoszą się na wykresie.

Odpowiedz

10

Musisz zadzwonić nx.draw_networkx_edge_labels(), który pozwoli Ci ... rysować NetworkX etykiety krawędzi :)

EDIT: pełna zmodyfikowany źródło

#!/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>) 
+0

@Joel: dodano pełne źródło; Nie tylko łączyłem się z dokumentami, faktycznie proponowałem metodę :) –

+0

@Joel: Oh, tego nie wiedziałem :) –

+0

Poszedłem dalej i wstawiłem tę edycję. Myślę, że kod jest tak czysty tak jak teraz. Nie wiem, dlaczego wcześniej miałem błąd (w rzeczywistości kod, który myślałem, że daje mi błąd, teraz działa czysto ...). – Joel

Powiązane problemy