| ファイル名拡張子 | .gv |
|---|---|
| インターネットメディアの種類 | テキスト/vnd.graphviz |
| フォーマットの種類 | グラフ記述言語 |
| オープンフォーマット? | はい |
DOT はグラフ記述言語で、 Graphvizプロジェクトの一環として開発されました。DOT グラフは通常、またはファイル名拡張子—の付いたファイルとして保存されます。2007年以前のバージョンのMicrosoft Wordで使用されていた拡張子との混同を避けるため、こちらが推奨されます。[1]は、Graphviz パッケージで DOT ファイルを処理するメイン プログラムの名前でもあります。
.gv.dot .gv.dot dot
さまざまなプログラムが DOT ファイルを処理できます。dot、neato、twopi、circo、fdp、sfdpなどの一部のプログラムは、DOT ファイルを読み取ってグラフィカルな形式でレンダリングできます。gvpr、gc、acyclic、ccomps、sccmap、tredなどのその他のプログラムは、DOT ファイルを読み取り、表現されたグラフ上で計算を実行します。 最後に、 lefty、dotty、grappaなどのその他のプログラムは、対話型インターフェイスを提供します。 GVedit ツールは、テキスト エディターと非対話型ビューアを組み合わせたものです。ほとんどのプログラムは、Graphviz パッケージの一部であるか、内部的に使用します。
DOTは歴史的には「明日のDAG」の頭字語であり、有向非巡回グラフのみを扱うDAG形式とDAGプログラムの後継として考えられた。[2]
構文
グラフの種類
無向グラフ

最も単純な場合、DOT は無向グラフを記述するために使用できます。無向グラフは、人々の相互の友情など、オブジェクト間の単純な関係を示します。graphキーワードは新しいグラフを開始するために使用され、ノードは中括弧内に記述されます。二重ハイフン ( --) は、ノード間の関係を示すために使用されます。
// グラフ名とセミコロンはオプションです
。graph graphname { a -- b -- c ; b -- d ; }
有向グラフ

無向グラフと同様に、DOT はフローチャートや依存関係ツリーなどの有向グラフを記述できます。構文は無向グラフと同じですが、キーワードを使用してグラフを開始し、矢印 (->) を使用してノード間の関係を示します。
digraph
有向グラフグラフ名{ a -> b -> c ; b -> d ; }
属性

DOTファイルでは、グラフ、ノード、エッジにさまざまな属性を適用できます。[3]これらの属性は、色、形状、線のスタイルなどの側面を制御できます。ノードとエッジの場合、1つ以上の属性と値のペアが、ステートメントの後、セミコロン(オプション)の前に角括弧で囲まれて配置されます[]。グラフ属性は、グラフ要素の下に直接属性と値のペアとして指定され、複数の属性はコンマで区切られるか、複数の角括弧セットが使用されます。一方、ノード属性は、ノードの名前のみを含み、ドット間の関係を含まないステートメントの後に配置されます。
graph graphname { // この属性はグラフ自体に適用されますsize = "1,1" ; // label 属性はノードのラベルを変更するために使用できますa [ label = "Foo" ]; // ここでは、ノードの形状が変更されます。b [ shape = box ]; // これらのエッジは両方とも異なる線のプロパティを持ちますa -- b -- c [ color = blue ]; b -- d [ style = dotted ]; // [style=invis] はノードを非表示にします。}
HTMLのようなラベルはサポートされていますが、当初Graphvizはそれを処理していませんでした。[4]
コメント
DOT は、 CおよびC++スタイルの 1 行および複数行のコメント#をサポートします。また、多くのインタープリタ型言語と同様に、先頭文字
が番号記号である行は無視されます。
レイアウトプログラム
.svg/500px-Huffman_(To_be_or_not_to_be).svg.png)
DOT 言語はグラフを定義しますが、グラフをレンダリングする機能は提供していません。DOT 言語でグラフをレンダリング、表示、および操作するために使用できるプログラムがいくつかあります。
一般的な
- Graphviz – グラフを操作し、 SVG、PDF、PNGなど
のさまざまな形式でレンダリングするための CLI ユーティリティとライブラリのコレクション。
dot.dot–と他の形式間の変換のためのCLIツール
JavaScript
- Canviz – DOTファイルをレンダリングするためのJavaScriptライブラリ[5]
- d3-graphviz – Viz.jsとD3.jsをベースにしたJavaScriptライブラリで、DOTグラフをレンダリングし、グラフ間のアニメーション遷移とインタラクティブなグラフ操作をサポートします[6]
- Vis.js –ネットワークグラフの入力としてDOTを受け入れるJavaScriptライブラリ。 [7]
- Viz.js – Graphviz の JavaScript ポートであり、ブラウザーで使用するためのシンプルなラッパーを提供します。
- hpcc-js/wasm Graphviz – Viz.jsに似たGraphviz用の高速WASMライブラリ[8]
ジャワ
- Gephi – あらゆる種類のネットワークや複雑なシステム、動的および階層的なグラフのためのインタラクティブな視覚化および探索プラットフォーム
- Grappa – Graphviz のJavaへの部分的な移植
- graphviz-java – github.com から入手可能なGraphviz のJavaへのオープンソース部分移植版
- ZGRViewer – DOTビューア[9]
他の
- Beluging – DOT および Beluga 拡張機能のPythonおよびGoogle Cloud Platformベースのビューア
- Delineate –インタラクティブなプレビューでフル機能の DOT グラフを編集し、PNG、SVG、または JPEG としてエクスポートできるLinux用のRustアプリケーション
- dot2tex – DOTファイルをPGF/TikZまたはPSTricksに変換するプログラム。どちらもLaTeXでレンダリングされます[10]
- OmniGraffle – DOT のサブセットをインポートして編集可能なドキュメントを作成できるmacOS用のデジタル イラストレーションアプリケーション(ただし、結果を DOT にエクスポートすることはできません)
- Tulip –分析のためにDOTファイルをインポートできるC++のソフトウェアフレームワーク[11]
- VizierFX – ActionScriptのApache Flexグラフレンダリングライブラリ[12]
注記
- ^ 「ファイル拡張子は .dot か .gv か?」marc.info . 2011 年 3 月 8 日閲覧。
- ^ 「「ドット」の名前(語源)」。Graphviz 2022年11月14日。 2023年7月10日閲覧。
- ^ 「ノード、エッジ、グラフの属性」。graphviz.org 。 2017年5月12日閲覧。
- ^ 「ノードシェイプ: HTML のようなラベル」。graphviz.org 。2017年 5 月 12 日閲覧。
- ^ 「canviz: キャンバス上の graphviz」 。2017年 6 月 2 日閲覧。
- ^ 「GitHub - magjac/d3-graphviz: D3 を使用した Graphviz DOT レンダリングとアニメーション化された遷移」。github.com。2018年 6 月 6 日閲覧。
- ^ 「DOT 言語でデータをインポートする」。vis.js。2018年 12 月 22 日閲覧。
- ^ "hpcc-js/wasm". GitHub . 2020年10月21日閲覧。
- ^ "ZGRViewer". zvtm.sourceforge.net . 2017年5月12日閲覧。
- ^ 「dot2tex – Graphviz から LaTeX へのコンバーター」. dot2tex.readthedocs.io . 2019-11-01.
- ^ 「データ視覚化ソフトウェア – Tulip」。tulip.labri.fr 。 2017年5月12日閲覧。
- ^ 「GitHub - gvhung/vizierfx: code.google.com/p/vizierfx から自動的にエクスポートされました」。github.com 。 2017年5月12日閲覧。
参照
外部リンク
- DOT チュートリアルと仕様
- ドットでグラフを描く
- ノード、エッジ、グラフの属性
- ノードの形状
- 例のギャラリー
- Graphviz Online: DOT 記述の即時変換と視覚化
- ブーストグラフライブラリ
- lisp2dot または tree2dot: Lisp プログラミング言語のようなプログラムツリーを DOT 言語に変換します (遺伝的プログラミングで使用するために設計されています)
