0
:NetworkX:ノード座標を属性として割り当てる方法は?このような単純なグラフで
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_edge('0','1')
G.add_edge('1','2')
G.add_edge('2','0')
G.add_edge('0','3')
G.add_edge('1','4')
G.add_edge('5','0')
pos={'0':(1,0),'1':(1,1),'2':(2,3),'3':(3,2),'4':(0.76,1.80),'5':(0,2)} #node:(x,y)
nx.draw(G,pos=pos,with_labels=True)
plt.show()
私は、各ノードにノードIDを含む属性のリストを割り当てようとその(x,y)
は次のように座標場合:
for i,n in enumerate(G.nodes()):
G.nodes()[i]['weight']=[G.nodes()[i],pos[n]] #List of attributes
私は次のエラーを取得します:
Traceback (most recent call last):
File "<ipython-input-47-0f9ca94eeefd>", line 2, in <module>
G.nodes()[i]['weight']=[G.nodes()[i],pos[n]]
TypeError: 'str' object does not support item assignment
ここで何が間違っていますか?
それによって作成されたノード座標を知り、後で別のグラフで使用するために保存する方法は? – Sigur
@Sigurこの例では、ノード座標が構成されていました。これはあなたが解決しようとしている問題に依存しますが、ノードにあなたが望む座標を割り当てることができます。これらはディクショナリに保存でき、[pickle](https://docs.python.org/3/library/pickle.html)として保存することができます。これにより、ピックルのインポートとアンパックが可能になるため、後で別のグラフで使用することができます。私はこれが役立つことを願っていますより具体的な問題がある場合は、すべての詳細について新しい質問をしてください。 – FaCoffee
私は少しそれを検索させてください。多かれ少なかれ、同じ頂点セットを持つ一連のグラフがありますが、いくつかのパラメータに応じてエッジが現れます。しかし、頂点セットの位置は、最初はレイアウトによって作成され、次に他のグラフでは同じものを使用したいと思います。しかし、コードを実行するたびにグラフが変わります! – Sigur