ケータイを使わずに,ケータイにきたメールに返信する ワードプレスを2.7にアップグレードしたよ
12 月 26

最終的には図のようなグラフを書きたい.

と思いまして,いろいろ調べたところ,GraphVizというソフトが使えそう,と思いました.
WindowsでもLinuxでもMacでも使えます.

1, 環境をつくる

Ubuntuからは,まず

sudo apt-get install graphviz

これだけ.

windowsでは
まず http://www.graphviz.org/ からダウンロードしてインストール.
cygwinにパスを通すため,graphvizの実行ファイルのディレクトリ(例えば,Program Filesの下にインストールした場合は C:\Program Files\Graphviz\bin)を環境変数の「$Path」に追加します.(「コントロールパネル」→「システム」→「システムの詳細設定から」)
そして再起動.

2, 使ってみる

簡単なグラフを書いてみましょう.

digraph G{
  morning -> afternoon
  afternoon -> evening
  evening -> night
  night -> morning
}

こんな感じでつないで書ける.簡単.
これをtest.dotと名前を付けて保存します.

そして,シェルから

dot -Tpng test.dot -o test.png

として実行すると,問題がなければtest.pngという画像ができています.

test.png

test.png


png以外にも,jpgやgif,psなどにすることも可能です.

3, 作成

あとは参考になりそうなサイトなどを調べて,自分で作ってみてください.
【特選フリーソフト】テキストをグラフに変換 Graphviz : ITPro
PHPにおけるグラフ描画とアルゴリズム : Codezine
テキストから図を作成 - Graphviz : アシアルブログ
dotを使ったグラフ描画[pdf]
個人的には,最後のドキュメント(pdf)が,サンプルプログラムも多く載っていてよかったです.

4, 注意

先ほど示した方法では,必ずノード同士に「ランク」というものが存在するため,ソーシャルグラフのようなグラフはかけません.
そこで,

dot -Kneato -Tpng test.dot -o test.png

というように,-Kneatoというオプションをつけて実行することで,ランクを持たないグラフを書くことができるようです.
そうすると,先ほどのグラフは

test.png2回目

test.png2回目


となります.

5, おまけ

最後に,サンプルとして最初に載せたグラフのコードを載せて置きます.

digraph G{
  size="4,4"; //画像の大きさを指定
  ratio=fill    //画像の大きさまでグラフを引き延ばすように指定

/Homeの形と塗りつぶす色,塗りつぶすことを指定
  Home [shape=house, fillcolor="#FFE4C4", style=filled];

//線の色を指定
  edge [color="#000080"]

//ノードの塗りつぶす色,フォントなどを指定
  node[fillcolor="#E6E6FA", style=filled, fontname="monospace"];
  Home -> Internet
  Office -> Internet
  Internet -> amazon
  Home -> Office [weight=4];
  Home -> Gym
  Home -> Park
  amazon -> Home [weight=2];
  Nengajo -> Home
  Office -> Nengajo
  Super_Market -> Home
  Gym -> Super_Market
}


関連する投稿:

Leave a Reply