Графвиз

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
(CIRCO)
(Описание)
(не показаны 13 промежуточных версий 1 участника)
Строка 1: Строка 1:
'''Графвиз''' - набор утилит для графического представления данных.  
+
<youtube v="gXjU1DSsxm4" />
 +
 
 +
== Описание ==
 +
 
 +
[[Графвиз]] - набор утилит для графического представления данных.  
 
Программа  принимает описания отношений и элементов множеств, на которых определяется [[граф]], и "добавляет" к этим лишенным всяких геометрических атрибутов описаниям дополнительную [[информация|информацию]], позволяющую "нарисовать" картинку [[граф]]а.
 
Программа  принимает описания отношений и элементов множеств, на которых определяется [[граф]], и "добавляет" к этим лишенным всяких геометрических атрибутов описаниям дополнительную [[информация|информацию]], позволяющую "нарисовать" картинку [[граф]]а.
  
Строка 11: Строка 15:
 
<nowiki><graphviz>
 
<nowiki><graphviz>
 
digraph G {
 
digraph G {
Привет ->  Читатель ;
+
A ->  B ;
 
}
 
}
 
</graphviz></nowiki>
 
</graphviz></nowiki>
 
===== Специально для проекта Моя семья =====
 
 
Для того, чтобы создать генеалогическое древо семьи в Летописи, нам потребуется пакет Графвиз и простые команды указания '''->'''. В дальнейших записях отношения '''А ->Б''' всегда означает, что А является родителем Б. Поскольку у людей родителей может быть двое, то мы эти родительские
 
отношения будем снабжать метками -  [label="папа"] или [label="мама"]
 
 
digraph G {
 
//1 - Запишем участника ;
 
"Участник:Аксюта Герман"
 
// Запишем нового родственника и укажем, что он папа Участника
 
"Аксюта Владислав Николаевич" -> "Участник:Аксюта Герман" [label="папа"] ;
 
  // Запишем нового родственника и укажем, что она мама Участника
 
"Аксюта Людмила Сергеевна"  -> "Участник:Аксюта Герман" [label="мама"];
 
// Запишем нового родственника и укажем, что он папа  папы
 
"Аксюта Николай Николаевич" -> "Аксюта Владислав Николаевич" [label="папа"];
 
  }
 
 
Результат этих простых отношений пакет графвиз представит на следующем рисунке. В дальнейшем мы можем просто тихонечко наращивать это дерево. О том, как можно поворачивать деревья, окрашивать их в разные цвета, управлять их размерами и формами - смотрите и спрашивайте на страничке [[Графвиз руководство]]
 
  
  
 
<graphviz>
 
<graphviz>
 
digraph G {
 
digraph G {
node [fontsize=14, shape="none"]
+
rankdir = LR ;
"Участник:Аксюта Герман"
+
A ->  B ;
"Аксюта Владислав Николаевич" -> "Участник:Аксюта Герман" [label="папа"] ;
+
"Аксюта Людмила Сергеевна" -> "Участник:Аксюта Герман" [label="мама"];
+
"Аксюта Николай Николаевич" -> "Аксюта Владислав Николаевич" [label="папа"];
+
 
}
 
}
 
</graphviz>
 
</graphviz>
  
<graphviz>
+
В [[:Категория:Графвиз|категории Графвиз]] собрано множество примеров грофов, созданных при помощи средства графвиз. Прежде чем прочитать [[Графвиз руководство]], посмотрите на впечатляющие примеры.
digraph "DotFileParser" {
+
Важно понять, что графвиз позволяет не задумываться над тем, как распределять узлы на рабочем поле - программа сама это сделает за вас.
    size="12.8,10.24";
+
    "node0" [ label="BOF" shape=ellipse ];
+
    "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>
+
  
=== Новые возможности Render ===
+
{{#ask: [[Примеры различных ссылок, граф]] | format = embedded }}
Новая версия GraphViz Extension позволяет использовать '''renderer'''
+
* renderer='dot'
+
* renderer='twopi'
+
* renderer='neato'
+
* renderer='twopi'
+
* renderer='sfdp'
+
* renderer='circo'
+
  
==== DOT ====
+
Важное свойство графвиз - поскольку в вики мы можем редактировать текст графа, то мы можем в одном графе объединять то, что сделали несколько участников. Например, следующий граф собран из нескольких диаграмм сетей участников
<graphviz renderer='dot'  >
+
graph F {
+
rankdir=LR ;
+
A -- B -- C -- D -- F;
+
F -- C -- A ;
+
C -- E ;
+
}
+
</graphviz>
+
  
==== twopi ====
 
<graphviz>
 
graph T {
 
rankdir=LR ;
 
layout="twopi" ;
 
A -- B -- C -- D -- F;
 
F -- C -- A ;
 
C -- E
 
}
 
</graphviz>
 
  
==== NEATO ====
+
{{#ask: [[Коллективная диаграмма семей]]  | format = embedded }}
Метод «neato» использует «энергетическую» (spring) модель, по сути, близкую к методу искуственного отжига — начиная с некоторого состояния вершины перемещаются, чтобы минимизировать некую потенциальную энергию. Рекомендуем для ненаправленных графов общего вида.
+
  
<graphviz renderer='neato'>
 
graph N {
 
rankdir=LR ;
 
A -- B -- C -- D -- F;
 
F -- C -- A ;
 
}
 
</graphviz>
 
  
Обратить внимание - [[NetLogo]] layout - spring http://ccl.northwestern.edu/netlogo/docs/dict/layout-spring.html
+
Мы можем создавать различные виды схем:
 +
 
 +
{{#ask: [[WikiVote/Scheme]] | format = embedded }}
 +
 
 +
{{#ask: [[Учащийся город/Схема]]  | format = embedded }}
 +
 
  
==== CIRCO ====
 
<graphviz renderer='circo'>
 
graph C {
 
rankdir=LR ;
 
A -- B -- C -- D -- F;
 
F -- C -- A ;
 
}
 
</graphviz>
 
 
----
 
----
 +
* [[Графвиз установка]] - как установить на собственной машине
 +
* [[Grapviz Webgraphviz]] - как использовать облачные версии graphviz
  
См. [[Графвиз руководство]], [[Графвиз примеры]], [[Графвиз установка]]
 
  
 +
----
 
[[Категория:Расширения МедиаВики]]
 
[[Категория:Расширения МедиаВики]]
 
 
 
[[Категория:Графический пакет]]
 
[[Категория:Графический пакет]]
 
[[Категория:Графика]]
 
 
 
[[Категория:Графвиз]]
 
[[Категория:Графвиз]]
 +
[[Category:GraphViz]]

Версия 08:22, 19 октября 2020

Содержание

Описание

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

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

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


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


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

Примеры различных ссылок, граф

Рабочий пример графвиза - стоит обратить внимание на ссылки узла на самого себя. И еще важно:

  • ratio=compress;

Важное свойство графвиз - поскольку в вики мы можем редактировать текст графа, то мы можем в одном графе объединять то, что сделали несколько участников. Например, следующий граф собран из нескольких диаграмм сетей участников


Коллективная диаграмма семей

В этой статье обсуждаются возможности коллективного конструирование диаграмм связей внутри сети Летописи. Это пример трансклюзии, когда в качество строительных кирпичиков используют не статьи для составной страницы, а графы семей, для создания общей карты летописцев. В качестве строительных блоков использованы статьи из категорий Категория:Моя семья и Категория:Графвиз.


Мы можем создавать различные виды схем:

WikiVote/Scheme


English

Рус

Учащийся город/Схема





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