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

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

PyGraphviz

事実上、AGraphってクラスだけ。http://networkx.lanl.gov/pygraphviz/reference/agraph.html

メモしておくが、まだメチャクチャ。後で整理する。
[追記 date="2011-09-02"] 後で整理とか言っているあいだに、鍬田くんはPyGraphvizが使えるようになり、僕は使い方がよくわからないまま。もういいや。[/追記]

  • 表現データ


{始点1 : {終点1-1 : None, 終点1-2 : None, ...}, 始点2 : ...}
または、

{始点1 : [終点1-1, 終点1-2, ...], 始点2 : ...}

  • クエリー
  1. G.nodes()
  2. directed
  3. edges(nbunch=None, keys=False)
  4. get_edge(u, v, key=None)
  5. get_name()
  6. get_node(n)
  7. has_edge(u, v=None, key=None)
  8. has_neighbor(u, v, key=None)
  9. has_node(n)
  10. is_directed()
  11. is_strict()
  12. is_undirected()
  13. number_of_edges()
  14. number_of_nodes()
  • グラフの生成
  1. filename=
  2. string= DOT形式の記述
  3. data= 表現データ
  4. handle= Swig pointer to an agraph_t data structure
  5. copy() Return a copy of the graph.
  • グラフの種類設定
  1. name 名前やID
  2. directed
  3. strict -- 多重辺を許さない
  1. B=A.acyclic(copy=True)

Graphviz属性がメチャクチャいっぱいある。http://www.graphviz.org/doc/info/attrs.html

  • 表示(文字列化)
  1. string()
  2. to_string()
  • 追加
  1. 頂点 add_node(u)
  2. 辺 add_edge(u, v) G.add_edge('a','b','first') G.add_edge(u'a',u'b',color='green')
  3. 道 add_path(nlist)
  4. 辺の集まり add_edges_from(elist) G.add_edges_from(elist, color='green')
  5. サイクル add_cycle(nlist)
  • 変更
  1. graph_attr.update(landscape='true',ranksep='0.1')
  2. node_attr.update(color='red')
  3. edge_attr.update(len='2.0',color='blue')
  • 削除

deleteとremoveの違いがわからん。

  1. clear()
  2. delete_edge(u, v=None, key=None)
  3. delete_edges_from(elist)
  4. delete_node(n)
  5. delete_nodes_from(nbunch)
  6. remove_edge(u, v=None, key=None)
  7. remove_edges_from(ebunch)
  8. remove_node(n)
  9. remove_nodes_from(nbunch)
  • ファイルIO
  1. read(path) Read graph from dot format file on path. path can be a file name or file handle
  2. write(path=None)
  1. layout(prog='neato', args='') Assign positions to nodes in graph.
  2. A.layout(prog='dot')
  3. draw(path=None, format=None, prog=None, args='')
  • その他の操作
  1. tred(args='', copy=False)
  2. reverse() Return copy of directed graph with edge directions reversed.