2017-04-18 10 views
0

Ich habe dieses seltsame Verhalten mit NetworkX, das nicht folgt, was aufgrund der documentation on the Graph object erwartet werden würde.NetworkX zeigt nicht die Datenattribute der Knoten

Hier ist mein Code:

In [22]: G = nx.Graph() 

In [23]: G.add_node("Roasted",attr_dict={"css_color":"#454463"}) 

In [24]: G["Roasted"] 
Out[24]: {} 

In [25]: G.nodes(data=True) 
Out[25]: [('Roasted', {'css_color': '#454463'})] 

Bei In [23] ich einen Knoten mit einem Attribut Wörterbuch hinzugefügt. In In [24] indizierte ich einfach den Graphen G wie ich auf einem Wörterbuch und erwartete, dass es {'css_color':'#454463'} zurückgibt, aber ich bekam stattdessen ein leeres Wörterbuch zurück. Ich kann dieses Wörterbuch nur sehen, wenn ich einen Ausdruck der Liste der Knoten mit den angezeigten Daten anfordern würde.

In der Dokumentation, es zeigte, dass:

>>> G.add_node(1, time='5pm') 
>>> G.add_nodes_from([3], time='2pm') 
>>> G.node[1] 
{'time': '5pm'} 

Sie in der Lage sein sollte, sich das Wörterbuch einfach durch Indizierung auf dem Knotennamen zu erhalten. Warum hat es bei meinem Fall nicht funktioniert?

EDIT: Falls das Problem, dass ich für die Knotennamen eine Zeichenfolge anstelle ein int verwendet haben könnte, habe ich versucht, dies:

In [29]: G.add_node(1,attr_dict={"css_color":"#454463"}) 

In [30]: G[1] 
Out[30]: {} 

Und das Problem weiterhin besteht nach wie vor! Könnte das ein Fehler sein ???

Antwort

0

Ihre Erwartung, dass G["Roasted"] die Attribute des Knotens "Roasted" angeben sollte, ist die Ursache des Fehlers. In der Tat gibt G["Roasted"] Informationen über die Nachbarn "Roasted". Die Tatsache, dass es sich um ein leeres Wörterbuch handelt, stellt die Tatsache dar, dass Sie "Roasted" keine Nachbarn zugewiesen haben.

import networkx as nx 
G=nx.Graph() 
G.add_edge(1,2) 
G[1] 
>{2: {}} 

Was Sie verwenden müssen, ist G.node["Roasted"] statt G["Roasted"].

+0

Oh mein Gott! Ich kann nicht glauben, dass ich so einen dummen Fehler gemacht habe! Ich danke dir sehr! – AKKA

Verwandte Themen