Графвиз

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
(DOT)
(CIRCO)
(не показаны 16 промежуточных версий 2 участников)
Строка 15: Строка 15:
 
</graphviz></nowiki>
 
</graphviz></nowiki>
  
===== Специально для проекта Моя семья =====
+
=== Специально для проекта Моя семья ===
  
 
Для того, чтобы создать генеалогическое древо семьи в Летописи, нам потребуется пакет Графвиз и простые команды указания '''->'''. В дальнейших записях отношения '''А ->Б''' всегда означает, что А является родителем Б. Поскольку у людей родителей может быть двое, то мы эти родительские  
 
Для того, чтобы создать генеалогическое древо семьи в Летописи, нам потребуется пакет Графвиз и простые команды указания '''->'''. В дальнейших записях отношения '''А ->Б''' всегда означает, что А является родителем Б. Поскольку у людей родителей может быть двое, то мы эти родительские  
Строка 99: Строка 99:
  
 
==== DOT ====
 
==== DOT ====
<graphviz renderer='dot'>
+
<graphviz renderer='dot' >
 
graph F {
 
graph F {
 +
rankdir=LR ;
 
A -- B -- C -- D -- F;
 
A -- B -- C -- D -- F;
 
F -- C -- A ;
 
F -- C -- A ;
 +
C -- E ;
 
}
 
}
 
</graphviz>
 
</graphviz>
  
 
==== twopi ====
 
==== twopi ====
<graphviz renderer='twopi'>
+
<graphviz>
 
graph T {
 
graph T {
A -> B -> C -> D -> F;
+
rankdir=LR ;
F -> C -> A ;
+
layout="twopi" ;
 +
A -- B -- C -- D -- F;
 +
F -- C -- A ;
 +
C -- E
 
}
 
}
 
</graphviz>
 
</graphviz>
 
  
 
==== NEATO ====
 
==== NEATO ====
 +
Метод «neato» использует «энергетическую» (spring) модель, по сути, близкую к методу искуственного отжига — начиная с некоторого состояния вершины перемещаются, чтобы минимизировать некую потенциальную энергию. Рекомендуем для ненаправленных графов общего вида.
 +
 
<graphviz renderer='neato'>
 
<graphviz renderer='neato'>
 
graph N {
 
graph N {
A -> B -> C -> D -> F;
+
rankdir=LR ;
F -> C -> A ;
+
A -- B -- C -- D -- F;
 +
F -- C -- A ;
 
}
 
}
 
</graphviz>
 
</graphviz>
  
 +
Обратить внимание - [[NetLogo]] layout - spring http://ccl.northwestern.edu/netlogo/docs/dict/layout-spring.html
  
 
==== CIRCO ====
 
==== CIRCO ====
 
<graphviz renderer='circo'>
 
<graphviz renderer='circo'>
 
graph C {
 
graph C {
A -> B -> C -> D -> F;
+
rankdir=LR ;
F -> C -> A ;
+
A -- B -- C -- D -- F;
 +
F -- C -- A ;
 
}
 
}
 
</graphviz>
 
</graphviz>
 
----
 
----
  
См. [[Графвиз руководство]], [[Графвиз примеры]], [[Графвиз установка]]
+
См.  
 +
* [[Графвиз руководство]],  
 +
* [[Графвиз примеры]],  
 +
* [[Графвиз установка]]
 +
* [[Grapviz Webgraphviz]]
 +
 
 +
 
  
 
[[Категория:Расширения МедиаВики]]
 
[[Категория:Расширения МедиаВики]]
  
[[Категория:Средство]]
 
  
 
[[Категория:Графический пакет]]
 
[[Категория:Графический пакет]]
  
[[Категория:Графика]]
+
[[Категория:Графвиз]]
 +
 
 +
[[Category:GraphViz]]

Версия 09:30, 25 февраля 2019

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

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

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


<graphviz> digraph G { Привет -> Читатель ; } </graphviz>

Содержание

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

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

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

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


Новые возможности 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


См.

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