MatLab からエクスポートされているデータから大きな加重ダイグラフを作成する必要があります。最終的な目標は NNGT を使用して分析することですが、Networkx を使用してビルドしてから NNGT に変換する方が簡単なようです。
「sample.txt」は次のようになります。
1,37
1,76
2,4
2,41
3,2
3,4
4,2
4,3
などなどだから私は試しました:
import networkx as nx
G=nx.DiGraph()
G=nx.read_edgelist('sample.txt')
しかし、これは空のグラフ オブジェクト (0 ノード、0 エッジ) を返します。
Networkxによって以前に提案された答えを試しました: ファイルからグラフをインポートするにはどうすればよいですか? :
with open('sample.txt') as f:
lines = f.readlines()
myList = [line.strip().split() for line in lines]
G.add_edges_from(myList)
しかし、エラーが発生しました:
NetworkXError: エッジ タプル ['1,37'] は 2 タプルまたは 3 タプルでなければなりません。
だから私は試しました:
tup = tuple(myList)
G.add_edges_from(tup)
しかし、それでも同じエラーが発生しました:
NetworkXError: エッジ タプル ['1,76'] は 2 タプルまたは 3 タプルでなければなりません。
これはエッジを取得しようとしているだけで、まだ重みを扱っていません。
最終的には、次のことができる必要があります。
- ノード数を設定して NNGT でダイグラフを作成します - 一部のノードにはエッジがありませんが、存在する必要があります)
- ファイルからエッジ (つまり、隣接行列) と重みをインポートします。MatLab からエクスポートできるすべてのファイル タイプは、.txt である必要はありません。
何か案は?