Графвиз

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
Строка 11: Строка 11:
 
<nowiki><graphviz>
 
<nowiki><graphviz>
 
digraph G {
 
digraph G {
Привет ->  Читатель ;
+
A ->  B ;
 
}
 
}
 
</graphviz></nowiki>
 
</graphviz></nowiki>
 
 
[[Графвиз/для проекта Моя семья]]
 
  
  
 
<graphviz>
 
<graphviz>
digraph "DotFileParser" {
+
digraph G {
    size="12.8,10.24";
+
rankdir = LR ;
    "node0" [ label="BOF" shape=ellipse ];
+
A -> B ;
    "node1" [ label="EOF" shape=ellipse ];
+
    "node2" [ label="graphName" shape=ellipse ];
+
    "node3" [ label="{" shape=ellipse ];
+
    "node4" [ label="stmtList" shape=ellipse ];
+
    "node5" [ label="graphAttrib" shape=ellipse ];
+
    "node6" [ label="node" shape=ellipse ];
+
    "node7" [ label="edge" shape=ellipse ];
+
    "node8" [ label="}" shape=ellipse ];
+
    "node9" [ label="nodeName" shape=ellipse ];
+
    "node10" [ label="edgePair" shape=ellipse ];
+
    "node11" [ label="nodeList" shape=ellipse ];
+
    "node12" [ label="edgeList" shape=ellipse ];
+
    "node13" [ label="nodeAttrib" shape=ellipse ];
+
    "node14" [ label="edgeAttrib" shape=ellipse ];
+
    "node0" -> "node1" [ color=black fontcolor=black label="Empty file" ];
+
    "node0" -> "node2" [ color=black ];
+
    "node2" -> "node3" [ color=black ];
+
    "node3" -> "node4" [ color=black ];
+
    "node4" -> "node5" [ color=black ];
+
    "node5" -> "node4" [ color=black ];
+
    "node4" -> "node6" [ color=black ];
+
    "node4" -> "node7" [ color=black ];
+
    "node4" -> "node3" [ color=black fontcolor=black label="subGraph" ];
+
    "node4" -> "node8" [ color=black ];
+
    "node8" -> "node4" [ color=black ];
+
    "node8" -> "node1" [ color=black ];
+
    "node6" -> "node9" [ color=black ];
+
    "node7" -> "node10" [ color=black ];
+
    "node9" -> "node11" [ color=black fontcolor=black label="[" ];
+
    "node9" -> "node4" [ color=black ];
+
    "node10" -> "node12" [ color=black fontcolor=black label="[" ];
+
    "node10" -> "node4" [ color=black ];
+
    "node11" -> "node4" [ color=black fontcolor=black label="]" ];
+
    "node12" -> "node4" [ color=black fontcolor=black label="]" ];
+
    "node11" -> "node13" [ color=black ];
+
    "node13" -> "node11" [ color=black ];
+
    "node12" -> "node14" [ color=black ];
+
    "node14" -> "node12" [ color=black ];
+
 
}
 
}
 
</graphviz>
 
</graphviz>
 +
 +
 +
=== [[Графвиз/для проекта Моя семья]] ===
 +
{{#ask: [[Графвиз/для проекта Моя семья]] | format = embedded }}
 +
 +
== Примеры ==
 +
 +
=== [[GraphViz/DotFileParser]] ===
 +
 +
{{#ask: [[GraphViz/DotFileParser]] | format = embedded }}
  
 
=== Новые возможности Render ===
 
=== Новые возможности Render ===

Версия 15:36, 1 марта 2020

Графвиз - набор утилит для графического представления данных. Программа принимает описания отношений и элементов множеств, на которых определяется граф, и "добавляет" к этим лишенным всяких геометрических атрибутов описаниям дополнительную информацию, позволяющую "нарисовать" картинку графа.

Для использования Графвиз требуется использовать примитивный язык описания графов dgl. Основные понятия:

  • граф,
  • вершина графа -- элемент множества,
  • ребро графа, соединяющее вершину N с вершиной M


<graphviz> digraph G { A -> B ; } </graphviz>



Содержание

Графвиз/для проекта Моя семья

Графвиз/для проекта Моя семья

Специально для проекта Моя семья

Для того, чтобы создать генеалогическое древо семьи в Летописи, нам потребуется пакет Графвиз и простые команды указания ->. В дальнейших записях отношения А ->Б всегда означает, что А является родителем Б. Поскольку у людей родителей может быть двое, то мы эти родительские отношения будем снабжать метками - [label="папа"] или [label="мама"]

digraph G {
//1 - Запишем участника ;
"Участник:Аксюта Герман"
// Запишем нового родственника и укажем, что он папа Участника
"Аксюта Владислав Николаевич" -> "Участник:Аксюта Герман" [label="папа"] ;
 // Запишем нового родственника и укажем, что она мама Участника
"Аксюта Людмила Сергеевна"  -> "Участник:Аксюта Герман" [label="мама"];
// Запишем нового родственника и укажем, что он папа  папы
"Аксюта Николай Николаевич" -> "Аксюта Владислав Николаевич" [label="папа"];
 }

Результат этих простых отношений пакет графвиз представит на следующем рисунке. В дальнейшем мы можем просто тихонечко наращивать это дерево. О том, как можно поворачивать деревья, окрашивать их в разные цвета, управлять их размерами и формами - смотрите и спрашивайте на страничке Графвиз руководство



Примеры

GraphViz/DotFileParser

GraphViz/DotFileParser

Пример - GraphViz/DotFileParser

Новые возможности Render

Новая версия GraphViz Extension позволяет использовать renderer

  • renderer='dot'
  • renderer='twopi'
  • renderer='neato'
  • renderer='twopi'
  • renderer='sfdp'
  • renderer='circo'

DOT

twopi

NEATO

Метод «neato» использует «энергетическую» (spring) модель, по сути, близкую к методу искуственного отжига — начиная с некоторого состояния вершины перемещаются, чтобы минимизировать некую потенциальную энергию. Рекомендуем для ненаправленных графов общего вида.

Обратить внимание - NetLogo layout - spring http://ccl.northwestern.edu/netlogo/docs/dict/layout-spring.html

CIRCO


См.

Персональные инструменты
Инструменты