|
|
(не показаны 63 промежуточные версии этого же участника) |
Строка 1: |
Строка 1: |
− | '''Графвиз''' - набор утилит для графического представления данных. | + | '''Graphviz''' - набор утилит для графического представления данных. |
| Программа принимает описания отношений и элементов множеств, на которых определяется граф, и "добавляет" к этим лишенным всяких геометрических атрибутов описаниям дополнительную информацию, позволяющую "нарисовать" картинку графа. | | Программа принимает описания отношений и элементов множеств, на которых определяется граф, и "добавляет" к этим лишенным всяких геометрических атрибутов описаниям дополнительную информацию, позволяющую "нарисовать" картинку графа. |
| | | |
Строка 8: |
Строка 8: |
| * ребро графа, соединяющее вершину N с вершиной M | | * ребро графа, соединяющее вершину N с вершиной M |
| | | |
− | === Простейший граф === | + | == Быстрый старт == |
| | | |
− | '''<nowiki><graphviz>digraph G {rankdir=LR ;Привет -> Читатель ;}</graphviz></nowiki>'''
| + | Входной файл для программы «DOT» является обычным текстовым файлом на специальном языке разметки графа. Структура файла очень простая, например, |
| | | |
− | Программа сама распознает все связи графа и упорядочит его таким образом, чтобы было наименьшее количество пересечений.
| + | <nowiki> <graphviz> |
| + | digraph G{ |
| + | Рождение->Юность->Зрелость->Старость->Смерть; |
| + | Юность->Смерть; |
| + | Зрелость->Смерть; |
| + | } |
| + | </graphviz></nowiki> |
| | | |
| + | на выходе будет: |
| + | |
| + | <graphviz> |
| + | digraph G{ |
| + | Рождение->Юность->Зрелость->Старость->Смерть; |
| + | Юность->Смерть; |
| + | Зрелость->Смерть; |
| + | } |
| + | </graphviz> |
| + | |
| + | Программа «Dot» сама распознает все связи графа и упорядочит его таким образом, чтобы было наименьшее количество пересечений. |
| + | |
| + | Если у вас узлы поименованы словосочетаниями, заключите их в кавычки, например: |
| + | |
| + | <nowiki> <graphviz> |
| + | digraph G{ |
| + | "Сидоров Пётр Фёдорович" -> "Сидоров Иван Петрович" [label="отец"]; |
| + | "Сидорова Анна Павловна " -> "Сидоров Иван Петрович" [label="мать"]; |
| + | } |
| + | </graphviz></nowiki> |
| | | |
− | <graphviz>digraph G{rankdir=LR ;Привет -> Читатель ;}</graphviz> | + | <graphviz> |
| + | digraph G{ |
| + | "Сидоров Пётр Фёдорович" -> "Сидоров Иван Петрович" [label="отец"]; |
| + | "Сидорова Анна Павловна " -> "Сидоров Иван Петрович" [label="мать"]; |
| + | } |
| + | </graphviz> |
| | | |
− | ===Свойства графа===
| + | ==Свойства графа== |
| | | |
| Для того, граф было удобнее просматривать, можно настроить следующие свойства. Например: | | Для того, граф было удобнее просматривать, можно настроить следующие свойства. Например: |
Строка 31: |
Строка 62: |
| ** '''fontcolor="blue"''' - цвет шрифта = голубой | | ** '''fontcolor="blue"''' - цвет шрифта = голубой |
| ** '''shape="none"''' - форма = "без формы" | | ** '''shape="none"''' - форма = "без формы" |
− | *** '''Формы узла [shape=?]''' - '''invtriangle''' - треугольник вершиной вниз; '''box''' - прямоугольник; '''ellipse''' - эллипс; '''invtrapezium''' - перевёрнутая трапеция; '''triangle''' - треугольник; '''trapezium''' - трапеция; '''record''' - ; '''doubleoctagon''' - двойной восьмиугольник ; '''octagon''' - восьмиугольник; '''tripleoctagon''' - тройной восьмиугольник ([http://www.graphviz.org/doc/info/shapes.html Все формы]) | + | *** '''Формы узла [shape=?]''' - '''invtriangle''' - треугольник вершиной вниз; '''box''' - прямоугольник; '''ellipse''' - эллипс; '''invtrapezium''' - перевёрнутая трапеция; '''triangle''' - треугольник; '''trapezium''' - трапеция; '''octagon''' - восьмиугольник; '''tripleoctagon''' - тройной восьмиугольник ([http://www.graphviz.org/doc/info/shapes.html Все формы]) |
| ** '''Ярославль [shape=Mdiamond]''' - узлу Ярославль придаётся форма ромба(алмаз) | | ** '''Ярославль [shape=Mdiamond]''' - узлу Ярославль придаётся форма ромба(алмаз) |
| ** '''Сызрань [shape=Msquare]''' - узлу Сызрань придаётся форма квадрата | | ** '''Сызрань [shape=Msquare]''' - узлу Сызрань придаётся форма квадрата |
Строка 38: |
Строка 69: |
| ** '''Казань [shape=hexagon,color=green]''' - узлу Казань придаётся форма шестиугольника и зелёный цвет | | ** '''Казань [shape=hexagon,color=green]''' - узлу Казань придаётся форма шестиугольника и зелёный цвет |
| * Управление положением узлов - '''{rank=same; Елабуга Дзержинск Сызрань ;}''' - узлам Елабуга, Дзержинск, Сызрань предан разряд = тот же самый; '''ranksep=3''' - расстояние между разрядами; | | * Управление положением узлов - '''{rank=same; Елабуга Дзержинск Сызрань ;}''' - узлам Елабуга, Дзержинск, Сызрань предан разряд = тот же самый; '''ranksep=3''' - расстояние между разрядами; |
− | * '''Свойства'''(edge)'''ребер''' - edge[color="blue",fontcolor="Green",fontsize=12] | + | * '''Свойства''' (edge) '''ребер''' - edge[color="blue",fontcolor="Green",fontsize=12] |
| ** '''color="Brown"''' - цвет = коричневый | | ** '''color="Brown"''' - цвет = коричневый |
| *** '''color="Green:blue:red"''' - трёхцветие (возможно любое количество) | | *** '''color="Green:blue:red"''' - трёхцветие (возможно любое количество) |
Строка 48: |
Строка 79: |
| * '''Ярлык ребра''' [label="Волга"] - все связи '''Ярославль -> ... -> Сызрань''' будут помечены меткой Волга. | | * '''Ярлык ребра''' [label="Волга"] - все связи '''Ярославль -> ... -> Сызрань''' будут помечены меткой Волга. |
| | | |
| + | |
| + | |
| + | '''''Пример:''''' |
| | | |
| <nowiki><graphviz> | | <nowiki><graphviz> |
Строка 63: |
Строка 97: |
| } | | } |
| </graphviz></nowiki> | | </graphviz></nowiki> |
| + | |
| + | '''''Результат:''''' |
| + | |
| <graphviz> | | <graphviz> |
| digraph G{ | | digraph G{ |
Строка 78: |
Строка 115: |
| </graphviz> | | </graphviz> |
| | | |
− | === Гипертекстовые ссылки на страницы === | + | == [http://lib.custis.ru/index.php/Graphviz Побробнее о Graphviz] == |
− | | |
− | Ссылки на внутренние страницы устанавливаются прямым связыванием:
| |
− | * ПскоВики - '''[URL=ПскоВики]'''
| |
− | | |
− | Кроме того, мы можем в начале графа указать, что все элементы поименованные в графе должны ссылаться на страницы с соответстующим названием.
| |
− | '''node [URL="/index.php/\N"]''' ;
| |
− | | |
− | После этого можно просто указывать имена узлов, а гипертекстовые ссылки добавятся к ним автоматически.
| |
− | | |
− | Для того, чтобы имя заметки на ребре так же становилось ссылкой на страницу, необходимо дополнить метку ссылкой '''[label="ПскоВики", URL="ПскоВики"]'''. В графе, который представлен ниже все узлы и метки являются гиперссылками.
| |
− | | |
− | <nowiki><graphviz>
| |
− | digraph G{
| |
− | rankdir=LR ;
| |
− | node[color="Green",fontsize=9, fontcolor="blue"] ;
| |
− | edge[color="Green",fontcolor="blue",fontsize=8] ;
| |
− | node [URL="/index.php/\N"] ;
| |
− | Категории -> "Категория:Тьюторы" -> "Категория:Участник" -> "Категория:Учитель" [label="ПскоВики",URL="ПскоВики"] ;
| |
− | }
| |
− | </graphviz></nowiki>
| |
− | | |
− | | |
− | <graphviz>
| |
− | digraph G{
| |
− | rankdir=LR ;
| |
− | node[color="Green",fontsize=9, fontcolor="blue"] ;
| |
− | edge[color="Green",fontcolor="blue",fontsize=8] ;
| |
− | node [URL="/index.php/\N"] ;
| |
− | Категории -> "Категория:Тьюторы" -> "Категория:Участник" -> "Категория:Учитель" [label="ПскоВики",URL="ПскоВики"] ;
| |
− | }
| |
− | </graphviz>
| |
− | | |
− | Ссылки на внешние источники устанавливаются прямым связыванием с адресом web-сайта:
| |
− | * ПскоВики [URL="http://wiki.pskovedu.ru/index.php/Заглавная_страница"]
| |
− | | |
− | <nowiki><graphviz>
| |
− | digraph G{
| |
− | rankdir=LR ;
| |
− | node[color="red",fontsize=9, fontcolor="blue", shape="none"] ;
| |
− | edge[color="red",fontcolor="blue",fontsize=8] ;
| |
− | node [URL="/index.php/\N"] ;
| |
− | Тест -> Проект [style=dotted, label="ПскоВики", URL="http://wiki.pskovedu.ru/index.php/ Заглавная_страница"] ;
| |
− | }
| |
− | </graphviz>
| |
− | </nowiki>
| |
− | <graphviz>
| |
− | digraph G{
| |
− | rankdir=LR ;
| |
− | node[color="red",fontsize=9, fontcolor="blue", shape="none"] ;
| |
− | edge[color="red",fontcolor="blue",fontsize=8] ;
| |
− | node [URL="/index.php/\N"] ;
| |
− | Тест -> Проект [style=dotted, label="ПскоВики", URL="http://wiki.pskovedu.ru/index.php/Заглавная_страница"] ;
| |
− | }
| |
− | </graphviz>
| |
− | | |
− | | |
− | ===Использование групп подграфа===
| |
− | В структуре графа можно образовать несколько групп использую дополнение - '''subgraph cluster_0 {}'''
| |
− | | |
− | <nowiki><graphviz> digraph G {
| |
− | subgraph cluster0 {
| |
− | style=filled;
| |
− | color=DeepSkyBlue;
| |
− | node [style=filled,color=white];
| |
− | "Учебные проекты" -> "Сообщество школ" -> "Сетевые проекты" -> "Участники сообщества";
| |
− | label = "Летописи.ру";
| |
− | }
| |
− | subgraph cluster1 {
| |
− | node [style=filled];
| |
− | Проекты -> школы -> тьюторы -> учителя;
| |
− | label = "ПскоВики";
| |
− | color=blue
| |
− | "Учебные проекты" -> Проекты
| |
− | учителя -> "Участники сообщества"
| |
− | Проекты -> "Сетевые проекты"
| |
− | }
| |
− | }</graphviz></nowiki>
| |
− | | |
− | <graphviz> digraph G {
| |
− | subgraph cluster0 {
| |
− | style=filled;
| |
− | color=DeepSkyBlue;
| |
− | node [style=filled,color=white];
| |
− | "Учебные проекты" -> "Сообщество школ" -> "Сетевые проекты" -> "Участники сообщества";
| |
− | label = "Летописи.ру";
| |
− | }
| |
− | subgraph cluster1 {
| |
− | node [style=filled];
| |
− | Проекты -> школы -> тьюторы -> учителя;
| |
− | label = "ПскоВики";
| |
− | color=blue
| |
− | "Учебные проекты" -> Проекты
| |
− | учителя -> "Участники сообщества"
| |
− | Проекты -> "Сетевые проекты"
| |
− | }
| |
− | }</graphviz>
| |
− | | |
− | ===Сложный граф===
| |
− | Пример графа с использование '''подписи''', '''многоугольных узлов неправильной формы''' и '''разнонаправленный'''.
| |
− | | |
− | <nowiki><graphviz> digraph G {
| |
− | graph [ //подпись под графом
| |
− | fontsize = 26,//размер шрифта
| |
− | label = "Сложный граф",
| |
− | size = "8,8" ];//размер графа
| |
− | node [ shape = polygon,//форма = многоугольник
| |
− | sides = 4,// сторон = 4
| |
− | distortion = "0.0",//искажение = "0.0"
| |
− | orientation = "0.0",//ориентация = "0.0"
| |
− | skew = "0.0",//уклон "0.0"
| |
− | color = white,//цвет = белый
| |
− | style = filled,//стиль = заполненный
| |
− | fontname = "Helvetica-Outline" ];//Название(имя) шрифта = "Helvetica-Outline"
| |
− | // формирование узлов графа
| |
− | "Псковская область" [sides=9, distortion="0.936354", orientation=28, skew="-0.126818", color=salmon2];
| |
− | "Города" [sides=5, distortion="0.238792", orientation=11, skew="0.995935", color=deepskyblue];
| |
− | "Районы" [sides=8, distortion="0.019636", orientation=79, skew="-0.440424", color=goldenrod2];
| |
− | "Псков" [sides=7, distortion="0.265084", orientation=26, skew="0.403659", color=gold1];
| |
− | "Великие Луки" [distortion="0.039386", orientation=2, skew="-0.461120", color=greenyellow];
| |
− | Порхов [sides=5, distortion="0.228564", orientation=63, skew="-0.062846", color=darkseagreen];
| |
− | Невель [distortion="0.624013", orientation=56, skew="0.101396", color=dodgerblue1];
| |
− | "РЦДО" [sides=8, distortion="0.731383", orientation=43, skew="-0.824612", color=thistle2];
| |
− | "РРЦ" [sides=6, distortion="0.592100", orientation=34, skew="-0.719269", color=darkolivegreen3];
| |
− | "Великолукский" [sides=7, distortion="0.640971", orientation=84, skew="-0.768455", color=cyan];
| |
− | "Псковский" [distortion="0.758942", orientation=42, skew="0.039886", color=blue];
| |
− | "Псковская область" -> "Города"[color=red];//формирование направлений графа
| |
− | "Псковская область" -> "Районы"[color=red];//цвет ребра = красный
| |
− | "Города" -> "Псков"[color=green];
| |
− | "Города" -> "Великие Луки"[color=green];
| |
− | "Города" -> Порхов[color=green];
| |
− | "Города" -> Невель[color=green];
| |
− | Невель -> РРЦ;
| |
− | Порхов -> РРЦ;
| |
− | Великолукский -> РРЦ;
| |
− | Псковский -> РРЦ;
| |
− | РРЦ -> РЦДО
| |
− | "Великие Луки" -> РЦДО;
| |
− | Псков -> РЦДО;
| |
− | "Районы" -> "Великолукский";
| |
− | "Районы" -> "Псковский";
| |
− | }</graphviz></nowiki>
| |
− | | |
− | <graphviz> digraph G {
| |
− | graph [ //подпись под графом
| |
− | fontsize = 26,//размер шрифта
| |
− | label = "Сложный граф",
| |
− | size = "8,8" ];//размер графа
| |
− | node [ shape = polygon,//форма = многоугольник
| |
− | sides = 4,// сторон = 4
| |
− | distortion = "0.0",//искажение = "0.0"
| |
− | orientation = "0.0",//ориентация = "0.0"
| |
− | skew = "0.0",//уклон "0.0"
| |
− | color = white,//цвет = белый
| |
− | style = filled,//стиль = заполненный
| |
− | fontname = "Helvetica-Outline" ];//Название(имя) шрифта = "Helvetica-Outline"
| |
− | "Псковская область" [sides=9, distortion="0.936354", orientation=28, skew="-0.126818", color=salmon2];// формирование узлов графа
| |
− | "Города" [sides=5, distortion="0.238792", orientation=11, skew="0.995935", color=deepskyblue];
| |
− | "Районы" [sides=8, distortion="0.019636", orientation=79, skew="-0.440424", color=goldenrod2];
| |
− | "Псков" [sides=7, distortion="0.265084", orientation=26, skew="0.403659", color=gold1];
| |
− | "Великие Луки" [distortion="0.039386", orientation=2, skew="-0.461120", color=greenyellow];
| |
− | Порхов [sides=5, distortion="0.228564", orientation=63, skew="-0.062846", color=darkseagreen];
| |
− | Невель [distortion="0.624013", orientation=56, skew="0.101396", color=dodgerblue1];
| |
− | "РЦДО" [sides=8, distortion="0.731383", orientation=43, skew="-0.824612", color=thistle2];
| |
− | "РРЦ" [sides=6, distortion="0.592100", orientation=34, skew="-0.719269", color=darkolivegreen3];
| |
− |
| |
− | "Великолукский" [sides=7, distortion="0.640971", orientation=84, skew="-0.768455", color=cyan];
| |
− | "Псковский" [distortion="0.758942", orientation=42, skew="0.039886", color=blue];
| |
− | "Псковская область" -> "Города"[color=red];//формирование направлений графа
| |
− | "Псковская область" -> "Районы"[color=red];//цвет ребра = красный
| |
− | "Города" -> "Псков"[color=green];
| |
− | "Города" -> "Великие Луки"[color=green];
| |
− | "Города" -> Порхов[color=green];
| |
− | "Города" -> Невель[color=green];
| |
− | Невель -> РРЦ;
| |
− | Порхов -> РРЦ;
| |
− | Великолукский -> РРЦ;
| |
− | Псковский -> РРЦ;
| |
− | РРЦ -> РЦДО
| |
− | "Великие Луки" -> РЦДО;
| |
− | Псков -> РЦДО;
| |
− | "Районы" -> "Великолукский";
| |
− | "Районы" -> "Псковский";
| |
− |
| |
− | }</graphviz>
| |
− | <graphviz>
| |
− | digraph G{
| |
− | graph [bgcolor=darkseagreen1]; //Цвет фона
| |
− | ratio=auto; //Отношение равно авто. Граф просматривается из центра в разные стороны
| |
− | node[color="darkorange2",fontsize=10,fontcolor="gray0",style=filled,shape="octagon"]; //Характеристики центра
| |
− | edge[color="darkgreen"]; //Цвет стрелок
| |
− | "Симметрия" -> "Биология"[dir=both];
| |
− | "Симметрия" -> "Математика"[dir=both];
| |
− | "Симметрия" -> "Физика"[dir=both];
| |
− | "Симметрия" -> "Химия"[dir=both];
| |
− | "Симметрия" -> "География"[dir=both];
| |
− | "Симметрия" -> "Музыка"[dir=both];
| |
− | "Симметрия" -> "Архитектура"[dir=both];
| |
− | "Симметрия" -> "Религия"[dir=both];
| |
− | "Симметрия" -> "Астрономия"[dir=both];
| |
− | "Симметрия" -> "..."[dir=both];
| |
− | "Биология"[shape=ellipse,color=gold],"Математика"[shape=ellipse,color=gold],"Физика"[shape=ellipse,color=gold],"Химия"[shape=ellipse,color=gold],"География"[shape=ellipse,color=gold],"Музыка"[shape=ellipse,color=gold],"Архитектура"[shape=ellipse,color=gold],"Религия"[shape=ellipse,color=gold],"Астрономия"[shape=ellipse,color=gold],"..."[shape=ellipse,color=gold];
| |
− | }
| |
− | </graphviz>
| |
− | | |
− | '''Graphviz''' — это разработанный специалистами лаборатории AT&T пакет утилит по автоматической визуализации графов, заданных в виде текстового описания. Пакет распространяется с открытыми исходными файлами и работает на всех операционных системах, включая Windows, Linux/Unix, Mac OS. Самой интересной программой пакета является «dot», автоматический визуализатор направленных графов, который принимает на вход текстовый файл со структурой графа, а на выходе формирует граф в виде графического, векторного или текстового файла.
| |
− | | |
− | = Быстрый старт =
| |
− | <graphviz>
| |
− | digraph G{
| |
− | "Коржуков Валентин Григорьевич" -> "Коржуков Максим Валентинович" [label="отец"];
| |
− | "Миронова Татьяна Рудольфовна" -> "Коржуков Максим Валентинович" [label="мать"];
| |
− | }
| |
− | </graphviz>
| |
− | | |
− | Входной файл для программы «DOT» является обычным текстовым файлом на специальном языке разметки графа. Структура файла очень простая, например,
| |
− | | |
− | digraph G{
| |
− | Рождение->Юность->Зрелость->Старость->Смерть;
| |
− | Юность->Смерть;
| |
− | Зрелость->Смерть;
| |
− | }
| |
− | | |
− | на выходе будет
| |
− | | |
− | <graphviz>
| |
− | digraph G{
| |
− | Рождение->Юность->Зрелость->Старость->Смерть;
| |
− | Юность->Смерть;
| |
− | Зрелость->Смерть;
| |
− | }
| |
− | </graphviz>
| |
− | | |
− | Программа «Dot» сама распознает все связи графа и упорядочит его таким образом, чтобы было наименьшее количество пересечений.
| |
− | | |
− | Чтобы использовать «dot»-графы в {{SITENAME}}, используйте следующий синтаксис:
| |
− | | |
− | <nowiki><graph>
| |
− | digraph G{
| |
− | Рождение->Юность->Зрелость->Старость->Смерть;
| |
− | Юность->Смерть;
| |
− | Зрелость->Смерть;
| |
− | }
| |
− | </graph></nowiki>
| |
− | | |
− | Если у вас узлы поименованы словосочетаниями, заключите их в кавычки, т. е.
| |
− | | |
− | <nowiki><graph>
| |
− | digraph G{
| |
− | "Полет фантазии"->"Расход горючего";
| |
− | }
| |
− | </graph></nowiki>
| |
− | | |
− | Поздравляем! Теперь вы способны рисовать графы в {{SITENAME}}. Остальной текст будет посвящен некоторым тонкостям использования Graphviz.
| |
− | | |
− | = Внешний вид графа =
| |
− | «Dot» позволяет изменять внешний вид графа. Например, можно изменять форму фигур (прямоугольники, овалы, круги, параллелограммы, многоугольники), цвет и шрифт текста, цвет фона фигур, стиль стрелок и рамок фигур, подписи стрелок и т. д.
| |
− | Итак, основные объектами являются узлы («node») и ребра («edge»). Для того, чтобы настроить свойства всех узлов или ребер нужно вначале использовать команды
| |
− | node[свойство1="значение1",свойство2="значение2",...]
| |
− | edge[свойство1="значение1",свойство2="значение2",...]
| |
− | Также (в квадратных скобках после описания объекта) можно изменять настройки конкретного узла или ребра. Параметры графа, просто задаются в виде <tt>параметр=значение</tt>.
| |
− | Полезно запомнить параметр «rankdir», он может быть «TB» (top->bottom, параметр по умолчанию), или «LR» (left->right), и определяет, сверху-вниз, или справа-налево, нужно располагать узлы графа. Вот пестрый пример:
| |
− | | |
− | digraph G{
| |
− | 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>
| |
− | digraph G{
| |
− | 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>
| |
− | | |
− | Если предполагается, что граф будут не только просматривать через IE, но и печатать, то необходимо установить ширину картинки, иначе при печати картинка будет обрезана. Для этого следует задать внутри описания
| |
− | size="6.7,15";
| |
− | Существенна только первая цифра. Число 6.7 подобрано эмпирически, оно обеспечивает печать полной картинки при настройках IE по умолчанию.
| |
− | | |
− | | |
− | | |
− | = Многосекционный узлы =
| |
− | | |
− | Dot позволяет создавать многосекционные узлы при это каждая секция может быть поименована, и тогда ребра можно продоводить между секциями и узлами.
| |
− | | |
− | Для включения режима многосекционности устанавливается атрибут узла shape.
| |
− | shape=record;
| |
− | | |
− | Секции описываются в атрибуте label узла, с помощью разделителя «|». Для именования секции ее имя указывается в <>. При описание ребра, исходящего или входящего в секцию, секция именуется следующим образом:
| |
− | | |
− | элемент:<имя_секции>
| |
− | | |
− | Например, из такого описания:
| |
− | | |
− | digraph structs {
| |
− | 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>
| |
− | digraph structs {
| |
− | 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>
| |
− | | |
− | = Гиперссылки на графах =
| |
− | | |
− | Можно использовать атрибут «URL», задавая относительные или абсолютные гиперссылки для узлов и ребер. Например
| |
− | | |
− | <nowiki><graph>
| |
− | digraph G {
| |
− | rankdir=LR;
| |
− | SGML [URL="SGML"];
| |
− | HTML [URL="HTML"];
| |
− | XML [URL="XML"];
| |
− | XHTML [URL="http://www.w3schools.com/xhtml/"];
| |
− | SGML->HTML;
| |
− | SGML->XML;
| |
− | HTML->XHTML;
| |
− | XML->XHTML;
| |
− | SGML->XHTML[color="red",fontcolor="blue",label="ссылка на Google",URL="http://www.google.com"];
| |
− | }
| |
− | </graph></nowiki>
| |
− | | |
− | | |
− | <graphviz>
| |
− | digraph G {
| |
− | rankdir=LR;
| |
− | SGML [URL="SGML"];
| |
− | HTML [URL="HTML"];
| |
− | XML [URL="XML"];
| |
− | XHTML [URL="http://www.w3schools.com/xhtml/"];
| |
− | SGML->HTML;
| |
− | SGML->XML;
| |
− | HTML->XHTML;
| |
− | XML->XHTML;
| |
− | SGML->XHTML[color="red",fontcolor="blue",label="ссылка на Google",URL="http://www.google.com"];
| |
− | }
| |
− | </graphviz>
| |
− | | |
− | | |
− | | |
− | = Версии для печати =
| |
− | Как известно, трудно добиться хорошего результата одновременно на экране и на принтере, в силу разных разрешений. Картинка экранного разрешения будет плохо (с «зазубринами») выглядеть на принтере, а картинка печатного разрешения, будет очень плохо выглядеть на экране (к сожалению, современные броузеры выполняют очень примитивный ресайзинг картинок при показе), и будет достаточно много «весить». Все соображения о печатных картинках также относятся к случаю, когда вы переносите (например, копируя вебстраницу из броузера через клипборд) содержимое MediaWiki-статьи в MS Word или другой текстовый редактор.
| |
− | Для такого, «печатного» случая (т. е. если у вас не примитивные графы, и вы собираетесь их печатать или переносить в другую систему верстки), мы сделали «печатную версию» всех перечисленных графов, с разрешением около 200 DPI. Для этого надо использовать те же самые тэги с постфиксом «-print», например «graph-print»,«neato-print», и т.п.:
| |
− | | |
− | <graph-print>
| |
− | digraph G{
| |
− | 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"];
| |
− | }
| |
− | </graph-print>
| |
− | | |
− | Полученные картинки являются компромиссом, между весом, читаемостью на экране и читаемостью на бумаге.
| |
− | Желательно не использовать для совершенно тривиальных графов, или графов, которых вы не собираетесь печатать.
| |
− | | |
− | = Задание для самостоятельной работы =
| |
− | Используя графвиз отобразите сферу ваших интересов и увлечений.
| |
− | | |
− | | |
− | | |
− | | |
| | | |
− | [[Категория:Семинар]] | + | [[Категория:Веб 2.0]] |