このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

NetworkX(主にDiGraph)の使い方 (3)

GがNetworkXのグラフだとして、

  1. G自体がノードイテレータとして使える。例: [n for n in G]
  2. G.graph でグラフ全体の属性を得られる。
  3. G.node でノードセットを辞書の形で得られる。
  4. G.edge でエッジセットを辞書の形で得られる。
  5. G.nodeのキーがノードで、値はノード属性
  6. G.edgeのキーがソースノードで、値は「ターゲットノードと辺属性」の辞書
  7. G自体が、G.edgeと同じように使える。G[1][2] とか G[1][3]['color']='blue' とか。
  8. グラフ全体の属性の設定は G.graph['day']='Monday' とか。
  9. ノード属性の設定は G.node[1]['room'] = 714 とか。
  10. 辺(エッジ)属性の設定は G[1][2]['weight'] = 4.7 、G.edge[1][2]['weight'] = 4 とか。
  11. G.nodes() でノードセット
  12. G.edges() でエッジセット
  13. 関数 nx.to_edgelist(G) でエッジリストを取り出す
  14. 関数として、nx.nodes(G) がある。
  15. 関数として、nx.edges(G) がある。
  16. 関数として、nx.{set/get}_{node/edge}_attributes がある。
  17. G.neighbors(n), G.successors(n) とかもある。

実験用には、次のようなグラフが使える。

  1. nx.path_graph(4, nx.DiGraph())
  2. nx.complete_graph(4, nx.DiGraph())
  3. nx.cycle_graph(4, nx.DiGraph())