2017-04-18 12 views
0

documentation on the Graph objectに基づいて予想されるものに従わないNetworkXでこの奇妙な動作が発生しています。NetworkXがノードのデータ属性を表示しない

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'})] 

In [23]で私は属性辞書でノードを追加しました:

は、ここに私のコードです。 In [24]では、私は辞書のようにグラフGを単に索引付けしていましたが、それは{'css_color':'#454463'}を返すと予想しましたが、代わりに空の辞書が戻ってきました。私は、そのデータが表示されたノードのリストのプリントアウトを求める必要がある場合にのみ、その辞書を見ることができます。ドキュメントで

、それがあることを示した:あなたは、単にノード名自体にインデックスを付けることにより、辞書を得ることができるはず

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

。なぜ私の場合はうまくいかなかったのですか?

EDIT:

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

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

そして、それでも問題が解決しない:場合は、問題は、私はノード名のint型の代わりに文字列を使用したことだったかもしれない、私はこれを試してみました!これはバグでしょうか?

答えて

0

G["Roasted"]は、ノードの属性を与える必要があります。"Roasted"は、エラーの原因です。実際にはG["Roasted"]は、"Roasted"の近隣に関する情報を提供します。空の辞書であるという事実は、隣人を"Roasted"に割り当てていないという事実を表しています。あなたが使用する必要がどのような

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

G.node["Roasted"]いうよりG["Roasted"]です。

+0

ああgosh!私はそんなにばかげたミスをしたとは信じられない!どうもありがとうございます! – AKKA

関連する問題