GraphvizとかVimとか

基本的に物事をすぐに忘れるので簡単なことでもメモ.

Graphvizとか

Graphviz
基本的に,
Graghvizでグラフ構造からグラフを描画する
にめちゃ詳しく書いてある.
ただコマンドによっては使えない属性があるので
http://www.graphviz.org/doc/info/attrs.html
で確認.

ノードの形

ノードの形はデフォルトにしていたけど,pointがいい感じに思える.

1
node [ shape = point];

ノードにlabelが欲しい場合は,defaultに戻す.

閉路を書きたい

dotではなく,cicroがいいかも

細かい調整

rankでsame,max,min,source,sinkを指定出来る.

1
{rank = same; hoge; hogehoge;}

見えない辺で調整とか.グラフは同型なんだけど,そうじゃない,という時.
例えば,下のグラフの左下のノードを上に持って行きたい.

辺を作って,rankを合わせる.作った辺を消す.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
graph g {
    node [
        shape = point;
    ];

    a [fixedsize = true, width = 0.01, height = 0.01, shape = point,color="#00000000"];
    b [fixedsize = true, width = 0.01, height = 0.01, shape = point,color="#00000000"];
    c [fixedsize = true, width = 0.01, height = 0.01, shape = point,color="#00000000"];
    d [fixedsize = true, width = 0.01, height = 0.01, shape = point,color="#00000000"];

    a -- b -- c -- d [style = invis];

    1 -- 3;
    1 -- 4;
    2 -- 3 -- 5;
    2 -- 4 -- 5;
  3 -- 4;

    {rank = same; a; 1;}
    {rank = same; b; 2;}
    {rank = same; c; 3; 4;}
    {rank = same; d; 5;}
}

動的計画法とかの状態遷移をgraphvizで書きたい(DPの練習問題が本当にたまたま解けたので,メモを残すの必死).patchworkとかいいと思ったけど,辺が書けないみたいなので,osageでshapeをsquareに

グラフ理論の講義ノートを綺麗に



Vimとか

毎回,毎回 dot -Tpng hoge.dot -o hoge.png するのは面倒.quirkrunの設定に書く.

1
2
3
4
let g:quickrun_config['dot'] = {
\ 'command': 'dot',
\ 'exec': ['%c -T png %s -o %s:r.png', 'display %s:r.png']
\}

この設定で満足と思っていたが,こんな記事を見つけた.
emacsのgraphviz用モードをインストールする
emacsでは,pngのviewが出来る.これをしたい.

そうだ Vim で画像を表示させようを読む.この記事通りに設定して,
無事描画できた.この記事には

本来であれば XPM を用いて画像ファイルの描画を行うと Vim がかなり重くなるんですが、今回は別に起動している Vim で描画を行なっているのでレスポンスの重さはあまり気になりません。

とある.Vimが重くなることを考慮しなければファイル描画が可能?ココロオドル
helpを読むと,gvimの起動オプションを指定出来るみたいなので,

1
let g:sugarpot_gvim_cmd_option = '--serverlist GVIM --remote-tab-silent .'

的なことをして無理やり,dotをいじっているgvimに突っ込んでみる.フリーズする.ごめんなさい.sourceを読んでも全くわからないので諦める.

次にafterimage.vimを見つける.画像を開いてみる.
いつものフォントサイズで描画されてしまうので,小さく指定する.
そうすると,dotを書いているほうまで小さくなる(そりゃそうだ).頭を悩ます.バッファごとにフォントサイズを変更出来たりしないか調べるがよく分からず.

TweetVimとかvimfiler でファイルのアイコンを表示させてみた見て,iconの表示をやってる所を見たら参考になるかも,と思いコードを読むも何一つ分からず.

まとめ

  • Graphvizいい感じだ
  • Vimでquickrunの設定した
  • 画像表示をいい感じに出来ず

モウダメダ(完)

Oct 25th, 2015