2011/01/04 19:17:41
JGPのsyntax diagramみたいなのをGraphvizで描きたくて色々頑張ってみたんだけど、僕には無理だった。

graph Heawood {
node [label="\N", fontname=Arial, width="0.50000", height="0.500000", color=black];
edge [color=black];
graph [rankdir = LR];
subgraph cluster1 {
color=none
Start [style=invis];
L1 [style=invis, width=0.0, shape=point];
Alpha [shape=box, label="アルファベット"];
L2 [style=invis, width=0.0, shape=point];
End [style=invis];
Start -- L1 [arrowtail=teetee];
L1 -- Alpha;
Alpha -- L2;
L2 -- End [arrowhead=teetee];
}
Digit [shape=box, label=" 数字 "];
Hif [shape=circle, label="-"];
L1 -- Digit [tailport=w,headport=w];
L1 -- Hif [tailport=w,headport=w];
Digit -- L2 [tailport=e,headport=w];
Hif -- L2 [tailport=e,headport=w];
}
参考
2010/07/11 10:15:17
パーサーから直接書き出すようにしたいが、とりあえず。
import Data.Graph.Inductive
import Data.Graph.Inductive.Graphviz
labUEdges :: [Edge] -> [UEdge]
labUEdges = map (\(i,j) -> (i,j,()))
exprt :: Gr String ()
exprt = mkGraph (zip [1..5] ["2","*","3","+","4"])
(labUEdges [(2,1),(2,3),(4,2),(4,5)])
main = do putStrLn $ graphviz exprt "test" (0,0) (0,0) Portrait
コンパイルするには--makeオプションをつけて
$ ghc gvtest.hs --make
[1 of 1] Compiling Main ( gvtest.hs, gvtest.o )
Linking gvtest ...
$ ./gvtest | dot -Tpng > gvtest.png; open gvtest.png

2009/05/24 14:49:56
レイアウトをもう少しちゃんとしたい。
import pygraphviz as pgv
G=pgv.AGraph(strict=False,directed=True)
G.add_node('V1,C1')
G.add_node('V2,C2')
G.add_node('X1')
G.add_node('X2')
G.get_node('V2,C2').attr['shape'] = 'box'
G.get_node('V1,C1').attr['shape'] = 'box'
G.add_edge('V1,C1','V2,C2')
G.add_edge('V2,C2','V1,C1')
G.add_edge('V1,C1','X1')
G.add_edge('V1,C1','X2')
G.get_edge('V1,C1','V2,C2').attr['label'] = 'k12'
G.get_edge('V2,C2','V1,C1').attr['label'] = 'k21'
G.get_edge('V1,C1','X1').attr['label'] = 'Km,Vmax'
G.get_edge('V1,C1','X2').attr['label'] = 'K'
G.layout(prog='dot')
G.draw('pk1-3.png')

2009/05/23 11:50:48
コンパートメントモデルを書くのにいちいちInkspaceを立ち上げるのもめんどうなのでGraphvizにでも頼るかと思ったらmacbookには入ってなかった。networkxもついでに入れといた。
sudo port install graphviz
sudo easy_install-2.6 pygraphviz
sudo easy_install-2.6 networkx
使う
>>> import pygraphviz as pgv
>>> d={'1': {'2': None}, '2': {'1': None, '3': None}, '3': {'2': None}}
>>> A=pgv.AGraph(d)
>>> A.layout(prog='dot')
>>> A.draw('pyg.png')

2008/11/03 20:52:23
特にsubgraphの探索とか勉強したいところなんだけど、軽く脱線気味に。グラフとかネットワークは勉強してて楽しいですのう。
複雑ネットワーク入門
今野 紀雄,井手 勇介
講談社 / ¥ 2,520 ()
通常24時間以内に発送
半分くらいはグラフの基本的なことで、ゴルトン・ワトソン木、スモールワールド、スケールフリー、しきい値モデルをさらっと。
- 序章でラムゼー数
- クラスター係数
- 二部グラフ
- グラフの頂点集合が互いに素な二つの集合に分かれていること
- ケーリーの定理
- ランダムグラフのクラスター係数の期待値は本質的にはp
- ゴルトン・ワトソン過程はマルコフ連鎖
- スモールワールド性
- NWモデル
- 拡張されたサイクルと、ランダムグラフを重ね合わせたグラフ
- しきい値モデル
本書には具体的な例はほとんどないので自分で探せということか。
2008/11/01 21:39:58
GASTONが分からなくてお悩み中。参考文献とかから読まないとやっぱダメな感じ。
TODO:ここから追いかける
そのながれで、最短経路の本も読んでおく
最短経路の本
R. ブランデンベルク,P. グリッツマン
シュプリンガー・ジャパン株式会社 / ¥ 3,675 ()
通常24時間以内に発送
当分日本酒も無しだなぁ、ということで、昨日吞みきった高砂で当分は家吞み断ちだ。

中国茶用の茶器出したら、U隊長に「珍しいねー(なんかあったの?)」なんて言われてしまった。