Шаблон:Graphviz
(перенаправлено с «Справка:Графы»)
{{Graphviz}} — шаблон для вывода графов на языке dot с помощью программы GraphViz, использующий функциональность расширения MediaWiki ExternalData.
Параметры:
- или
dot— описание графа на языке dot. Если в описании присутсвует знак равенства, потребуется использовать синтаксис именованного параметра (1=илиdot=). Если имеется символ|, его надо заменить на{{!}},
renderer— алгоритм вывода графов:dot,neato,twopi,circo,fdp,osage,patchworkилиsfdp.
ПримерыПравить
| Описание | Викитекст | Вывод |
|---|---|---|
| Простейший пример |
{{graphviz|id=Example1|
digraph Example1{
Зачатие->Рождение->Юность->Зрелость->Старость->Смерть;
Зачатие->Аборт->Смерть;
Юность->Смерть;
Зрелость->Смерть;
}}} |
|
| Dot с викиссылками |
{{graphviz|id=Example2|
digraph Example2{
[[Зачатие]];[[Аборт]];[[Рождение]];[[Юность]];[[Зрелость]];[[Старость]];[[Смерть]];
Зачатие->Рождение->Юность->Зрелость->Старость->Смерть;
Зачатие->Аборт->Смерть;
Юность->Смерть;
Зрелость->Смерть;
}}} |
|
| Многословные названия узлов в кавычках |
{{graphviz|id=Example3|
digraph Example3{
"Полёт фантазии"->"Расход горючего";
}}} |
|
| Граф со сложным форматированием на прозрачном фоне |
{{graphviz|1=
digraph Example4{
graph [bgcolor="transparent"];
rankdir=LR;
node[color="red",fontsize=14];
edge[color="darkgreen",fontcolor="blue",fontsize=12];
OPEN[shape="rectangle",style="filled",fillcolor="lightgrey"];
CLOSED[shape="octagon",label="Финиш"];
VERIFIED[shape="rectangle",style="rounded"];
OPEN->RESOLVED->VERIFIED->CLOSED;
OPEN->CLOSED[style="bold"];
VERIFIED->OPEN[label="обнаружены ошибки",style="dashed",arrowhead="dot"];
}}} |
|
| Позиционирование узлов |
{{graphviz|id=Example5|dot=
digraph Example5{
node[fontsize=9];
{ /* шкала месяцев*/
node[shape=plaintext]; /* что бы не было видно рамок */
edge[color=white] /* что бы не было видно стрелок */
"март" -> "июнь" -> "сентябрь" -> "декабрь";
}
{ rank = same; "март"; "весна"; "a"; }
{ rank = same; "июнь"; "лето";}
{ rank = same; "сентябрь"; "осень"; "d"; }
{ rank = same; "декабрь"; "зима"; "e"}
"весна" -> "лето" -> "осень" -> "зима" -> "весна"
"a" -> "b" -> "c" -> "d" -> "e" ;
}}} |
|
| Многосекционные узлы |
{{graphviz|id=Example6|dot=
digraph Example6{
rankdir=HR;
first [shape=record,label=" x1\n all {{!}} { x21 {{!}} <f0> x22{{!}} x23} {{!}} x3" ];
second [shape=record,label=" x22_1 {{!}} x22_2 {{!}} x22_3"];
first:<f0> -> second;
}}} |
|
| Кластеры |
{{graphviz|id=Example7|dot=
digraph Example7 {
rankdir=LR;
subgraph cluster0 {
node [style=filled,color=white];
style=filled;
color=lightgrey;
a0;
a1
label = "process #1";
}
subgraph cluster1 {
node [style=filled];
b0;
label = "process #2";
color=blue
}
start -> a0;
start -> b0;
a0 -> a1 -> end;
b0 -> end;
}}} |
|
| Палитра, оптимизированная для чёрно-белой печати |
{{graphviz|id=Example8|dot=
digraph Example8{ rankdir=TB;
Палитра1->goldenrod [color=goldenrod]
Палитра1->green [color=green]
Палитра1->sienna [color=sienna]
Палитра1->red [color=red]
Палитра1->blue [color=blue]
Палитра2->lightcyan [color=lightcyan]
Палитра2->pink [color=pink]
Палитра2->green [color=green]
Палитра2->sienna [color=sienna]
Палитра2->red [color=red]
Палитра2->black [color=black]
}}} |
|
| Неориентированный граф на dot |
{{graphviz|id=Example9|dot= graph Example9{
node [fontsize=12];
node [shape=box]; course; institute; student;
node [shape=ellipse];
{node [label="name"] name0; name1; name2;}
code; grade; number;
node [shape=diamond,style=filled,color=lightgrey];
"C-I"; "S-C"; "S-I";
name0 -- course;
code -- course;
course -- "C-I" [label="n",len=1.00];
"C-I" -- institute [label="1",len=1.00];
institute -- name1;
institute -- "S-I" [label="1",len=1.00];
"S-I" -- student [label="n",len=1.00];
student -- grade;
student -- name2;
student -- number;
student -- "S-C" [label="m",len=1.00];
"S-C" -- course [label="n",len=1.00];
label = "\n\nEntity Relation Diagram\ndrawn by DOT";
}}} |
|
| Неориентированный граф на neato |
{{graphviz|id=Example10|renderer=neato|dot= graph Example10
{
node [fontsize=12];
node [shape=box]; course; institute; student;
node [shape=ellipse];
{node [label="name"] name0; name1; name2;}
code; grade; number;
node [shape=diamond,style=filled,color=lightgrey];
"C-I"; "S-C"; "S-I";
name0 -- course;
code -- course;
course -- "C-I" [label="n",len=1.00];
"C-I" -- institute [label="1",len=1.00];
institute -- name1;
institute -- "S-I" [label="1",len=1.00];
"S-I" -- student [label="n",len=1.00];
student -- grade;
student -- name2;
student -- number;
student -- "S-C" [label="m",len=1.00];
"S-C" -- course [label="n",len=1.00];
label = "\n\nEntity Relation Diagram\ndrawn by NEATO";
}}} |
|
| Неориентированный граф на fdp |
{{graphviz|id=Example11|renderer=fdp|dot=
graph Example11
{
node [fontsize=12];
node [shape=box]; course; institute; student;
node [shape=ellipse];
{node [label="name"] name0; name1; name2;}
code; grade; number;
node [shape=diamond,style=filled,color=lightgrey];
"C-I"; "S-C"; "S-I";
name0 -- course;
code -- course;
course -- "C-I" [label="n",len=1.00];
"C-I" -- institute [label="1",len=1.00];
institute -- name1;
institute -- "S-I" [label="1",len=1.00];
"S-I" -- student [label="n",len=1.00];
student -- grade;
student -- name2;
student -- number;
student -- "S-C" [label="m",len=1.00];
"S-C" -- course [label="n",len=1.00];
label = "\n\nEntity Relation Diagram\ndrawn by FDP";
}}} |
|
| Неориентированный граф на twopi |
{{graphviz|id=Example12|renderer=twopi|dot=
graph Example12{
node [fontsize=12];
node [shape=box]; course; institute; student;
node [shape=ellipse];
{node [label="name"] name0; name1; name2;}
code; grade; number;
node [shape=diamond,style=filled,color=lightgrey];
"C-I"; "S-C"; "S-I";
name0 -- course;
code -- course;
course -- "C-I" [label="n",len=1.00];
"C-I" -- institute [label="1",len=1.00];
institute -- name1;
institute -- "S-I" [label="1",len=1.00];
"S-I" -- student [label="n",len=1.00];
student -- grade;
student -- name2;
student -- number;
student -- "S-C" [label="m",len=1.00];
"S-C" -- course [label="n",len=1.00];
label = "\n\nEntity Relation Diagram\ndrawn by TWOPI";
}}} |
|
| Неориентированный граф на circo |
{{graphviz|id=Example13|renderer=circo|dot=
graph Example13{
node [fontsize=12];
node [shape=box]; course; institute; student;
node [shape=ellipse];
{node [label="name"] name0; name1; name2;}
code; grade; number;
node [shape=diamond,style=filled,color=lightgrey];
"C-I"; "S-C"; "S-I";
name0 -- course;
code -- course;
course -- "C-I" [label="n",len=1.00];
"C-I" -- institute [label="1",len=1.00];
institute -- name1;
institute -- "S-I" [label="1",len=1.00];
"S-I" -- student [label="n",len=1.00];
student -- grade;
student -- name2;
student -- number;
student -- "S-C" [label="m",len=1.00];
"S-C" -- course [label="n",len=1.00];
label = "\n\nEntity Relation Diagram\ndrawn by CIRCO";
}}} |
|
Настройки викиПравить
Для работы этого шаблона требуется активировать преднастройку External Data graphviz и развернуть одноимённый контейнер в соответствии с инструкциями, приложенными к расширению.
СсылкиПравить
- http://www.graphviz.org/Documentation.php
- http://www.graphviz.org/content/dot-language
- http://lib.custis.ru/index.php/Graphviz
- Emden Gansner and Eleftherios Koutsofios and Stephen Nort «Drawing graphs with dot». — January 26 2006.