
グラフ描画は、幾何学的グラフ理論と情報視覚化の手法を組み合わせた数学とコンピュータサイエンスの分野であり、ソーシャルネットワーク分析、地図作成、言語学、バイオインフォマティクスなどのアプリケーションから生じるグラフの2次元描写を導き出します。[1]
グラフやネットワーク図の描画は、グラフの頂点と辺を絵で表現したものです。この描画をグラフ自体と混同しないでください。同じグラフに対して、まったく異なるレイアウトが対応している場合があります。 [2] 抽象的には、どの頂点のペアが辺で接続されているかが重要です。ただし、具体的には、描画内のこれらの頂点と辺の配置が、理解しやすさ、使いやすさ、製作コスト、美観に影響します。[3]グラフが時間の経過とともに辺の追加や削除によって変化し (動的なグラフ描画)、ユーザーのメンタルマップを維持することが目的である場合、問題はさらに悪化します。[4]
グラフィックの規則

グラフは、頂点が円盤、ボックス、またはテキストラベルとして表され、辺がユークリッド平面上の線分、ポリライン、または曲線として表されるノードリンク図として描かれることが多い。[3]ノードリンク図は、13世紀の博学者ラモン・リュイの名前で出版された14〜16世紀の擬ルルスの著作にまで遡ることができる。擬ルルスは、形而上学的概念の集合間のすべての組み合わせを分析するために、完全グラフに対してこのタイプの図を描いた。[5]
有向グラフの場合、矢印は方向を示すために一般的に使用されるグラフィカルな慣習です。[2]しかし、ユーザー調査では、先細りなどの他の慣習の方がこの情報をより効果的に提供できることが示されています。[6] 上向きの平面描画では、すべての辺が低い頂点から高い頂点に向いているという慣習が使用されるため、矢印は不要です。[7]
ノードリンク図の代わりとなる表記法としては、円パッキングなどの隣接表現(頂点が平面上の互いに交わらない領域で表され、辺が領域間の隣接関係で表されます)、交差表現(頂点が互いに交わらない幾何学的オブジェクトで表され、辺がそれらの交差で表されます)、可視表現(頂点が平面上の領域で表され、辺が互いに遮るもののない視線を持つ領域で表されます)、合流図(辺が数学的な線路内の滑らかな曲線で表されます)、ファブリック(ノードが水平線で、辺が垂直線で表されます) 、およびグラフの 隣接行列の視覚化などがあります。 [8]
品質対策
グラフ描画の美しさと使いやすさを客観的に評価する手段を見つけるために、グラフ描画に対してさまざまな品質尺度が定義されてきました。[9]同じグラフに対して異なるレイアウト方法の選択を導くことに加えて、いくつかのレイアウト方法はこれらの尺度を直接最適化しようとします。

- 交差数とは、互いに交差する辺のペアの数である。グラフが平面である場合、辺の交差なしにグラフを描く方が便利な場合が多い。つまり、この場合、グラフの描画はグラフの埋め込みを表す。しかし、アプリケーションでは非平面グラフが頻繁に発生するため、グラフ描画アルゴリズムでは一般に辺の交差を考慮する必要がある。[10]
- 図面の面積は、任意の 2 つの頂点間の最短距離を基準とした、最小の境界ボックスのサイズです。面積の小さい図面は、図面の特徴をより大きく表示できるため、読みやすく、一般的に面積の大きい図面よりも好まれます。境界ボックスのアスペクト比も重要になる場合があります。
- 対称性表示は、与えられたグラフ内の対称グループを見つけ、可能な限り対称性を表示する描画を見つける問題です。レイアウト方法によっては、自動的に対称的な描画が得られるものもありますが、描画方法によっては、入力グラフ内の対称性を見つけて、それを使用して描画を構築するものもあります。[11]
- エッジの形状は、目で追うのが簡単になるように、できるだけ単純なものにすることが重要です。ポリラインの描画では、エッジの複雑さは曲げの数で測定され、多くの方法では、曲げの合計数またはエッジあたりの曲げの数が少ない描画を提供することを目指しています。同様に、スプライン曲線の場合、エッジの複雑さは、エッジ上の制御点の数で測定されます。
- 一般的に使用される品質測定のいくつかは、エッジの長さに関するものです。一般的に、エッジの合計長さと各エッジの最大長さを最小化することが望ましいとされています。また、エッジの長さは、大きく異なるよりも均一であることが望ましい場合があります。
- 角度分解能はグラフ描画における最も鋭い角度の尺度である。グラフに高次数の頂点がある場合、必然的に角度分解能は小さくなるが、角度分解能は次数の関数によって制限される。[12]
- グラフの傾き数とは、直線セグメントのエッジ(交差を許容)で描画する際に必要な、異なるエッジの傾きの最小数である。立方体グラフの傾き数は最大4であるが、次数5のグラフの傾き数は無制限である可能性がある。次数4のグラフの傾き数が制限されるかどうかは未解決である。[12]
レイアウト方法


さまざまなグラフレイアウト戦略があります。
- 力ベースのレイアウトシステムでは、グラフ描画ソフトウェアは、バネや分子力学に関連する物理的なメタファーに基づいた力のシステムに従って頂点を連続的に移動させることにより、初期の頂点配置を変更します。通常、これらのシステムは、隣接する頂点間の引力とすべての頂点ペア間の反発力を組み合わせ、エッジの長さが短く、頂点が十分に離れているレイアウトを探します。これらのシステムは、エネルギー関数の勾配降下法に基づく最小化を実行するか、移動する頂点の速度または加速度に力を直接変換します。[14]
- スペクトルレイアウト法では、グラフの隣接行列から導出されるラプラシアンなどの行列の固有ベクトルを座標として用いる。 [15]
- 直交レイアウト法では、グラフのエッジを水平または垂直に、レイアウトの座標軸と平行に走らせることができます。これらの方法は、もともとVLSIおよびPCBレイアウトの問題のために設計されたものですが、グラフ描画にも適応されています。これらの方法には、通常、入力グラフを交差点を頂点に置き換えて平面化し、平面化されたグラフのトポロジカル埋め込みを見つけ、エッジの方向を曲げを最小限に抑えるように選択し、頂点をこれらの方向と一貫して配置し、最後にレイアウト圧縮段階で描画領域を削減するという多段階アプローチが含まれます。[16]
- ツリーレイアウトアルゴリズムは、ツリーに適したルート付きツリーのような構成を示します。多くの場合、「バルーンレイアウト」と呼ばれる手法では、ツリー内の各ノードの子ノードがノードを囲む円上に描画され、これらの円の半径はツリーの下位レベルで小さくなり、円が重ならないようにしています。[17]
- 階層型グラフ描画法(杉山式描画とも呼ばれる)は、有向非巡回グラフや、ソフトウェアシステム内のモジュールや関数間の依存関係のグラフなど、ほぼ非巡回であるグラフに最適です。これらの方法では、グラフのノードは、コフマン-グラハムアルゴリズムなどの方法を使用して、ほとんどのエッジが1つの層から次の層へと下向きになるように水平層に配置されます。このステップの後、各層内のノードは交差を最小限に抑えるように配置されます。[18]

- 円弧図は1960年代に遡るレイアウトスタイルで、[19]頂点を線上に配置し、辺は線の上または下に半円として描いたり、複数の半円をつなげた滑らかな曲線として描いたりします。
- 円形レイアウト法では、グラフの頂点を円上に配置し、交差を減らし、隣接する頂点を互いに近づけるために、円の周りの頂点の順序を慎重に選択します。エッジは、円の弦として、または円の内側または外側の円弧として描画されます。場合によっては、複数の円が使用されることがあります。[20]
- 優位性描画では、ある頂点が他の頂点から到達可能な場合にのみ、その頂点が他の頂点の上向き、右向き、またはその両方になるように頂点を配置します。このように、レイアウトスタイルはグラフの到達可能性関係を視覚的に明確にします。[21]
アプリケーション固有のグラフ描画
他の応用分野で生じるグラフおよびグラフ描画には、
- ソシオグラム、ソーシャルネットワークの図、ソーシャルネットワーク分析ソフトウェアでよく提供されるもの[22]
- ハッセ図、半順序に特化したグラフ描画の一種[23]
- 代数幾何学で使われるグラフ描画の一種であるデッサン・ダンファン[24]
- 状態図、有限状態機械のグラフィカル表現[25]
- コンピュータネットワーク図、コンピュータネットワーク内のノードと接続の描写[26]
- フローチャートとドラコンチャートは、ノードがアルゴリズムのステップを表し、エッジがステップ間の制御フローを表す図です。
- データフロー図は、ノードが情報システムのコンポーネントを表し、エッジが 1 つのコンポーネントから別のコンポーネントへの情報の移動を表す図です。
- 系統樹、タンパク質間相互作用ネットワーク、代謝経路などのバイオインフォマティクス。[27]
さらに、電子設計自動化(EDA)の配置および配線手順は、分散コンピューティングにおける貪欲埋め込みの問題と同様に、多くの点でグラフ描画と似ており、グラフ描画の文献には EDA の文献から借用した結果がいくつか含まれています。ただし、これらの問題はいくつかの重要な点でも異なります。たとえば、EDA では、面積の最小化と信号長が美観よりも重要であり、EDA の配線問題ではネットあたり 3 つ以上の端子が存在する場合がありますが、グラフ描画の類似の問題では通常、各エッジの頂点のペアのみが関係します。
ソフトウェア

グラフを描画するためのソフトウェア、システム、およびシステムプロバイダーには、次のものがあります。
- ノードを水平線として描画することで大規模なネットワークを視覚化するBioFabricオープンソース ソフトウェア。
- Cytoscape、分子相互作用ネットワークを視覚化するオープンソースソフトウェア
- Gephi、オープンソースのネットワーク分析および視覚化ソフトウェア
- graph-tool、グラフ分析用の無料/オープン Pythonライブラリ
- Graphviz 、 AT&T社のオープンソースグラフ描画システム[28]
- Linkurious は、グラフデータベース用の商用ネットワーク分析および視覚化ソフトウェアです。
- Mathematicaは、2Dおよび3Dグラフの視覚化とグラフ分析ツールを含む汎用計算ツールです。[29]
- Microsoft Automatic Graph Layout、グラフレイアウト用のオープンソース.NETライブラリ(旧称GLEE)[30]
- NetworkX は、グラフとネットワークを研究するための Python ライブラリです。
- Tulip [31]オープンソースのデータ視覚化ツール
- yEd、グラフレイアウト機能を備えたグラフエディタ[32]
- PGF/TikZ 3.0
graphdrawingパッケージ(LuaTeXが必要)。[33] - オープンソースの大規模ネットワーク可視化ソフトウェアLaNet-vi
参照
参考文献
脚注
- ^ ディ・バティスタら。 (1998)、vii–viii ページ。 Herman、Melançon、Marshall (2000)、セクション 1.1、「代表的なアプリケーション分野」。
- ^ ab ディ・バティスタら。 (1998)、p. 6.
- ^ ab ディ・バティスタら。 (1998)、p. ⅲ.
- ^ ミスエら(1995)。
- ^ クヌース(2013年)。
- ^ ホルテンとファン・ワイク (2009);ホルテンら。 (2011年)。
- ^ ガーグ&タマシア(1995年)。
- ^ ロングボー(2012年)。
- ^ ディ・バティスタら。 (1998)、セクション 2.1.2、美学、14 ~ 16 ページ。購入、コーエンとジェームス (1997)。
- ^ ディ・バティスタら。 (1998)、14 ページ。
- ^ ディ・バティスタら。 (1998)、p. 16.
- ^ ab Pach & Sharir (2009).
- ^ グランジャン(2014年)。
- ^ Di Battista et al. (1998)、セクション 2.7「力指向アプローチ」、pp. 29–30、および第 10 章「力指向法」、pp. 303–326。
- ^ ベックマン(1994);コーレン(2005)。
- ^ ディ・バティスタら。 (1998)、第 5 章、「フローと直交描画」、137 ~ 170 ページ。アイグルスペルガー、フェケテ、クラウ (2001)。
- ^ Herman、Melançon、Marshall (2000)、セクション 2.2、「従来のレイアウト - 概要」。
- ^ 杉山・田川・戸田 (1981);バステルトとマツシェフスキー (2001);ディ・バティスタら(1998)、第 9 章、「ダイグラフの層状描画」、265 ~ 302 ページ。
- ^ サアティ(1964年)。
- ^ ドゥルソス、マッデン & マッデン (1997)。
- ^ ディ・バティスタら。 (1998)、セクション 4.7、「支配的な図面」、112 ~ 127 ページ。
- ^ スコット(2000);ブランデス、フリーマン&ワグナー(2014)。
- ^ Di Battista et al. (1998)、pp. 15–16、および第 6 章「Flow and Upward Planarity」、pp. 171–214、Freese (2004)。
- ^ ザッポーニ(2003年)。
- ^ アンダーソン&ヘッド(2006年)。
- ^ ディ・バティスタ&リモンディーニ (2014)。
- ^ バッハマイヤー、ブランデス、シュライバー (2014)。
- ^ 「Graphviz と Dynagraph – 静的および動的グラフ描画ツール」、John Ellson、Emden R. Gansner、Eleftherios Koutsofios、Stephen C. North、Gordon Woodhull 著、Jünger & Mutzel (2004)。
- ^ 「グラフ描画入門」、Wolfram Language & System Documentation Center 、 2024年3月21日閲覧
- ^ ナックマンソン、ロバートソン、リー(2008年)。
- ^ 「Tulip – 巨大なグラフ可視化フレームワーク」、David Auber 著、Jünger & Mutzel (2004)。
- ^ 「yFiles – グラフの視覚化と自動レイアウト」、Roland Wiese、Markus Eiglsperger、Michael Kaufmann 著、Jünger & Mutzel (2004)。
- ^ Tantau (2013); GD 2012 の古いプレゼンテーションも参照。2016 年 5 月 27 日にWayback Machineにアーカイブされました。
一般的な参考文献
- ディ・バッティスタ、ジュゼッペ、イーデス、ピーター、タマシア、ロベルト、トリス、イオアニス G. (1998)、『グラフ描画:グラフの視覚化アルゴリズム』、プレンティス・ホール、ISBN 978-0-13-301615-4。
- ハーマン、イヴァン、メランソン、ガイ、マーシャル、M. スコット (2000)、「情報視覚化におけるグラフ視覚化とナビゲーション: 調査」、IEEE Transactions on Visualization and Computer Graphics、6 (1): 24–43、doi :10.1109/2945.841119。
- ユンガー、マイケル。Mutzel、Petra (2004)、グラフ描画ソフトウェア、Springer-Verlag、ISBN 978-3-540-00881-1。
専門分野
- アンダーソン、ジェームズ・アンドリュー、ヘッド、トーマス・J.(2006)、オートマトン理論と現代的応用、ケンブリッジ大学出版局、pp. 38-41、ISBN 978-0-521-84887-9。
- Bachmaier, Christian; Brandes, Ulrik ; Schreiber, Falk (2014)、「生物学的ネットワーク」、Tamassia, Roberto (編)、『グラフ描画と視覚化ハンドブック』、CRC Press、pp. 621–651。
- Bastert, Oliver; Matuszewski, Christian (2001)、「Layered drawing of digraphs」、Kaufmann, Michael; Wagner, Dorothea (eds.)、Drawing Graphs: Methods and Models、Lecture Notes in Computer Science、vol. 2025、Springer-Verlag、pp. 87–120、doi :10.1007/3-540-44969-8_5、ISBN 978-3-540-42062-0。
- Beckman, Brian (1994)、スペクトルグラフレイアウトの理論、Tech. Report MSR-TR-94-04、Microsoft Research、2016-04-01 にオリジナルからアーカイブ、2011-09-17に取得。
- Brandes, Ulrik ; Freeman, Linton C.; Wagner, Dorothea (2014)、「ソーシャル ネットワーク」、Tamassia, Roberto (編)、『グラフ描画と視覚化のハンドブック』、CRC Press、pp. 805–839。
- ディ・バッティスタ、ジュゼッペ。 Rimondini、Massimo (2014)、「Computer Networks」、Tamassia、Roberto (編)、Handbook of Graph Drawing and Visualization、CRC Press、763–803 ページ。
- Doğrusöz, Uğur; Madden, Brendan; Madden, Patrick (1997)、「グラフ レイアウト ツールキットの円形レイアウト」、North, Stephen (編)、Symposium on Graph Drawing、GD '96 Berkeley、カリフォルニア州、米国、1996 年 9 月 18 ~ 20 日、議事録、Lecture Notes in Computer Science、vol. 1190、Springer-Verlag、pp. 92 ~ 100、doi : 10.1007/3-540-62495-3_40、ISBN 978-3-540-62495-0。
- Eiglsperger, Markus; Fekete, Sándor; Klau, Gunnar (2001)、「直交グラフ描画」、Kaufmann, Michael; Wagner, Dorothea (編)、『グラフ描画』、Lecture Notes in Computer Science、vol. 2025、Springer Berlin / Heidelberg、pp. 121–171、doi :10.1007/3-540-44969-8_6、ISBN 978-3-540-42062-0。
- Freese, Ralph (2004)、「Automated lattice drawing」、Eklund, Peter (編)、Concept Lattices: Second International Conference on Formal Concept Analysis、ICFCA 2004、シドニー、オーストラリア、2004 年 2 月 23 ~ 26 日、議事録(PDF)、Lecture Notes in Computer Science、vol. 2961、Springer-Verlag、pp. 589 ~ 590、CiteSeerX 10.1.1.69.6245、doi :10.1007/978-3-540-24651-0_12、ISBN 978-3-540-21043-6、2016年3月14日にオリジナルからアーカイブ(PDF)され、2011年9月17日に取得。
- ガーグ、アシム; タマシア、ロベルト (1995)、「上方平面性テスト」、Order、12 (2): 109–133、CiteSeerX 10.1.1.10.2237、doi :10.1007/BF01108622、MR 1354797、S2CID 14183717。
- Grandjean、Martin (2014)、「La connaissance est un réseau」、Les Cahiers du Numérique、10 (3): 37–54、doi :10.3166/lcn.10.3.37-54、2015 年 6 月のオリジナルからアーカイブ27 、2014-10-15取得。
- Holten, Danny; Isenberg, Petra ; van Wijk, Jarke J .; Fekete, Jean-Daniel (2011)、「ノードリンクグラフにおけるテーパー、アニメーション、テクスチャ付きの有向エッジ表現の可読性の拡張評価」、IEEE Pacific Visualization Symposium (PacificVis 2011) (PDF)、pp. 195–202、doi :10.1109/PACIFICVIS.2011.5742390、ISBN 978-1-61284-935-5、S2CID 16526781、2016年4月11日にオリジナルからアーカイブ(PDF) 、 2011年9月29日取得。
- Holten, Danny; van Wijk, Jarke J. (2009)、「グラフの有向エッジの視覚化に関するユーザー調査」、第 27 回国際コンピューティング システム ヒューマン ファクター カンファレンス (CHI '09) の議事録(PDF)、pp. 2299–2308、CiteSeerX 10.1.1.212.5461、doi :10.1145/1518701.1519054、ISBN 9781605582467、S2CID 9725345、2011-11-06に オリジナル(PDF)からアーカイブ。
- ドナルド E. クヌース(2013)、「組合せ論の 2 千年」、ロビン ウィルソン、ジョン J. ワトキンス (編)、『組合せ論: 古代と現代』、オックスフォード大学出版局、7 ~ 37 ページ。
- コーレン、イェフダ (2005)、「固有ベクトルによるグラフの描画: 理論と実践」、Computers & Mathematics with Applications、49 (11–12): 1867–1888、doi : 10.1016/j.camwa.2004.08.015、MR 2154691。
- Longabaugh, William (2012)、「BioFabric による毛玉のコーミング: 大規模ネットワークの視覚化のための新しいアプローチ」、BMC Bioinformatics、13 :275、doi : 10.1186/1471-2105-13-275、PMC 3574047、PMID 23102059。
- Madden, Brendan; Madden, Patrick; Powers, Steve; Himsolt, Michael (1996)、「Portable graph layout and editing」、Brandenburg, Franz J. (ed.)、Graph Drawing: Symposium on Graph Drawing、GD '95、Passau、ドイツ、1995 年 9 月 20 ~ 22 日、Proceedings、Lecture Notes in Computer Science、vol. 1027、Springer-Verlag、pp. 385 ~ 395、doi : 10.1007/BFb0021822、ISBN 978-3-540-60723-6。
- Misue, K.; Eades, P.; Lai, W.; Sugiyama, K. (1995)、「レイアウト調整とメンタルマップ」、Journal of Visual Languages & Computing、6 (2): 183–210、doi :10.1006/jvlc.1995.1010。
- Nachmanson, Lev; Robertson, George; Lee, Bongshin (2008)、「GLEE によるグラフ描画」、Hong, Seok-Hee ; Nishizeki, Takao ; Quan, Wu (編)、Graph Drawing、第 15 回国際シンポジウム、GD 2007、オーストラリア、シドニー、2007 年 9 月 24 ~ 26 日、改訂版論文、Lecture Notes in Computer Science、vol. 4875、Springer-Verlag、pp. 389 ~ 394、doi : 10.1007/978-3-540-77537-9_38、ISBN 978-3-540-77536-2。
- Pach, János ; Sharir, Micha (2009)、「5.5 角度分解能と傾斜」、組み合わせ幾何学とそのアルゴリズム的応用: アルカラ講義、数学的概説とモノグラフ、第 152 巻、アメリカ数学会、pp. 126–127。
- Purchase, HC ; Cohen, RF; James, MI (1997)、「グラフ描画アルゴリズムの基礎に関する実験的研究」、Journal of Experimental Algorithmics、2、Article 4、doi :10.1145/264216.264222、S2CID 22076200。
- Saaty, Thomas L. (1964)、「完全グラフの交差の最小数」、Proc. Natl. Acad. Sci. USA、52 (3): 688–690、Bibcode : 1964PNAS...52..688S、doi : 10.1073/pnas.52.3.688、PMC 300329、PMID 16591215。
- スコット、ジョン (2000)、「ソシオグラムとグラフ理論」、ソーシャル ネットワーク分析: ハンドブック (第 2 版)、Sage、pp. 64–69、ISBN 978-0-7619-6339-4。
- 杉山 幸三、田川 昭二郎、戸田 光彦 (1981)、「階層的システム構造の視覚的理解法」、IEEE Transactions on Systems, Man, and Cybernetics、SMC-11 (2): 109–125、doi :10.1109/TSMC.1981.4308636、MR 0611436、S2CID 8367756。
- Tantau, Till (2013)、「TikZ でのグラフ描画」、Journal of Graph Algorithms and Applications、17 (4): 495–513、doi : 10.7155/jgaa.00301。
- Zapponi, Leonardo (2003 年 8 月)、「What is a Dessin d'Enfant」(PDF)、Notices of the American Mathematical Society、50 : 788–789、2021年 10 月 3 日にオリジナルからアーカイブ(PDF) 、 2021 年 4 月 28 日に取得。
さらに読む
- ディ・バティスタ、ジュゼッペ;イーデス、ピーター;タマシア、ロベルト; トリス、イオアニス G. (1994)、「グラフ描画アルゴリズム: 注釈付き参考文献」、計算幾何学: 理論と応用、4 (5): 235–282、doi : 10.1016/0925-7721(94)00014-x。
- カウフマン、マイケル、ワグナー、ドロテア、編 (2001)、「グラフの描画: 方法とモデル」、コンピュータサイエンスの講義ノート、第 2025 巻、Springer-Verlag、doi :10.1007/3-540-44969-8、ISBN 978-3-540-42062-0、S2CID 1808286。
- Tamassia, Roberto編 (2014)、Handbook of Graph Drawing and Visualization、CRC Press、2013-08-15 にオリジナルからアーカイブ、 2013-08-28 に取得。
外部リンク
- .NET 用の GraphX ライブラリ ( Wayback Machineで 2018-01-26 にアーカイブ) : グラフの計算と視覚化のためのオープンソース WPF ライブラリ。多数のレイアウトおよびエッジ ルーティング アルゴリズムをサポートします。
- グラフ描画電子プリントアーカイブ: すべてのグラフ描画シンポジウムの論文に関する情報が含まれます。
グラフ描画に関連する多くの追加リンク。
