2016-05-21 12 views
1

sagen, dass ich Knoten ['a','b','c'] im Netz, und die Paare werden in einer Liste gespeichert:Gewicht für Kanten nach Anzahl der Vorkommen in NetworkX

[('a','b'), ('a','b'), ('b','a'), ('b','c'), ('a','c')]

Ich möchte ein gewichtetes Netzwerk Diagramm erstellen mit NetworkX und Matplotlib. Da das Paar ('a', 'b') 3 mal vorkommt (in einem ungerichteten Netzwerk zählt auch ('b', 'a')), während beide ('b', 'c') und ('a' , 'c') tritt nur einmal auf, ich möchte die Breite der Kanten basierend auf ihrem Gewicht ändern.

Könnte jemand etwas Licht darauf werfen?

Antwort

2

So etwas sollte funktionieren. Finden Sie heraus, ob die Kante vorhanden ist und ob sie die Gewichte aktualisiert

default_weight = W 
G = nx.Graph() 
for nodes in node_list: 
    n0 = nodes[0] 
    n1 = nodes[1] 
    if G.has_edge(n0,n1): 
     G[n0][n1]['weight'] += default_weight 
    else: 
     G.add_edge(n0,n1, weight=default_weight) 
+0

Vielen Dank! Das macht genau das, was ich will. – ichbinangela

Verwandte Themen