Рисование графика - Graph drawing
Рисование графика это область математика и Информатика комбинируя методы из геометрическая теория графов и визуализация информации получить двухмерное изображение графики возникающие из приложений, таких как анализ социальных сетей, картография, лингвистика, и биоинформатика.[1]
Рисунок графика или Диаграмма сети это наглядное изображение вершины и края графа. Этот рисунок не следует путать с самим графиком: одному и тому же графику могут соответствовать очень разные макеты.[2] Говоря абстрактно, все, что имеет значение, - это то, какие пары вершин соединены ребрами. Однако в бетоне расположение этих вершин и ребер на чертеже влияет на его понятность, удобство использования, стоимость изготовления и эстетика.[3] Проблема усугубляется, если граф изменяется со временем, добавляя и удаляя ребра (динамическое рисование графа), и цель состоит в том, чтобы сохранить мысленную карту пользователя.[4]
Графические соглашения
Графики часто рисуются как диаграммы узловых связей, в которых вершины представлены в виде дисков, блоков или текстовых меток, а края представлены как отрезки линии, полилинии, или кривые в Евклидова плоскость.[3] Диаграммы узлов и звеньев восходят к работам Pseudo-Lull XIV-XVI веков, которые были опубликованы под названием Рамон Лулль, эрудит 13 века. Псевдо-затишье нарисовал диаграммы этого типа для полные графики чтобы проанализировать все попарные комбинации среди наборов метафизических понятий.[5]
В случае ориентированные графы, наконечники стрел сформировать обычно используемое графическое соглашение, чтобы показать их ориентация;[2] тем не менее, исследования пользователей показали, что другие условные обозначения, такие как постепенное сокращение, предоставляют эту информацию более эффективно.[6] Плоский рисунок вверх использует соглашение, согласно которому каждое ребро ориентировано от более низкой вершины к более высокой вершине, что делает ненужными стрелки.[7]
Альтернативные соглашения для диаграмм узловых соединений включают представления смежности, такие как круговые упаковки, в котором вершины представлены непересекающимися областями на плоскости, а ребра представлены смежностями между областями; представления пересечений в котором вершины представлены неразъединенными геометрическими объектами, а ребра представлены их пересечениями; представления видимости, в которых вершины представлены областями на плоскости, а края представлены областями, которые имеют беспрепятственный обзор друг друга; сливающиеся рисунки, на которых края представлены в виде гладких кривых в математическом железнодорожные пути; ткани, в которых узлы представлены горизонтальными линиями, а края - вертикальными линиями;[8] и визуализации матрица смежности графа.
Меры качества
Для графических чертежей было определено множество различных показателей качества в попытке найти объективные средства оценки их эстетики и удобства использования.[9] Помимо выбора между различными методами компоновки для одного и того же графика, некоторые методы компоновки пытаются напрямую оптимизировать эти меры.
- В номер перехода чертежа - это количество пар ребер, пересекающих друг друга. Если график планарный, то часто бывает удобно нарисовать его без пересечения ребер; то есть в этом случае рисунок графика представляет собой вложение графа. Тем не менее, неплоские графы часто возникают в приложениях, поэтому алгоритмы рисования графов обычно должны учитывать пересечения ребер.[10]
- В площадь рисунка - это размер самого маленького Ограничительная рамка относительно ближайшего расстояния между любыми двумя вершинами. Рисунки с меньшей площадью обычно предпочтительнее, чем с большей площадью, поскольку они позволяют отображать элементы рисунка в большем размере и, следовательно, более разборчиво. В соотношение сторон ограничивающей рамки также может иметь значение.
- Отображение симметрии - это проблема поиска группы симметрии в пределах заданного графика и найти рисунок, который отображает как можно больше симметрии. Некоторые методы компоновки автоматически приводят к симметричным чертежам; в качестве альтернативы некоторые методы рисования начинают с поиска симметрий во входном графе и их использования для построения рисунка.[11]
- Важно, чтобы края имели максимально простую форму, чтобы глазам было легче следить за ними. На полилинейных чертежах сложность кромки может быть измерена ее количество поворотов, и многие методы нацелены на создание чертежей с несколькими полными изгибами или несколькими изгибами на кромку. Точно так же для сплайновых кривых сложность кромки может быть измерена количеством контрольных точек на кромке.
- Некоторые обычно используемые меры качества касаются длины кромок: обычно желательно минимизировать общую длину кромок, а также максимальную длину любой кромки. Кроме того, может быть предпочтительно, чтобы длина кромок была одинаковой, а не сильно варьировалась.
- Угловое разрешение является мерой самых острых углов на чертеже графика. Если в графе есть вершины с высокими степень тогда оно обязательно будет иметь небольшое угловое разрешение, но угловое разрешение может быть ограничено снизу функцией степени.[12]
- В номер откоса графа - это минимальное количество различных наклонов кромок, необходимое для чертежа с ребрами прямых отрезков (допускающих пересечения). Кубические графы имеют номер наклона не более четырех, но графики пятой степени могут иметь неограниченное число наклона; остается открытым, ограничено ли число наклона графов степени 4.[12]
Методы верстки
Есть много разных стратегий компоновки графиков:
- В силовая компоновка систем, программное обеспечение для рисования графов изменяет начальное размещение вершин, непрерывно перемещая вершины в соответствии с системой сил, основанной на физических метафорах, связанных с системами пружины или же молекулярная механика. Как правило, эти системы объединяют силы притяжения между соседними вершинами с силами отталкивания между всеми парами вершин, чтобы найти компоновку, в которой длины ребер малы, а вершины хорошо разделены. Эти системы могут выполнять градиентный спуск основанная на минимизации функция энергии, или они могут преобразовывать силы непосредственно в скорости или ускорения для движущихся вершин.[14]
- Спектральный план методы используют в качестве координат собственные векторы из матрица такой как Лапласиан полученный из матрица смежности графа.[15]
- Методы ортогональной компоновки, которые позволяют краям графа располагаться горизонтально или вертикально, параллельно осям координат компоновки. Эти методы изначально были разработаны для СБИС и Печатная плата проблемы макета, но они также были адаптированы для рисования графиков. Обычно они включают многофазный подход, при котором входной граф планаризуется путем замены точек пересечения вершинами, обнаруживается топологическое вложение планаризованного графа, ориентация ребер выбирается для минимизации изгибов, вершины размещаются в соответствии с этими ориентациями и, наконец, макет стадия уплотнения уменьшает площадь рисунка.[16]
- Алгоритмы компоновки дерева показывают дерево -подобное образование, пригодное для деревья. Часто в технике, называемой «компоновка балуна», дочерние элементы каждого узла в дереве рисуются по кругу, окружающему узел, причем радиусы этих кругов уменьшаются на нижних уровнях дерева, чтобы эти круги не перекрывались.[17]
- Рисование многослойного графика методы (часто называемые рисованием в стиле Сугияма) лучше всего подходят для ориентированные ациклические графы или графики, которые почти ациклические, такие как графики зависимостей между модулями или функциями в программной системе. В этих методах узлы графа организованы в горизонтальные слои с использованием таких методов, как Алгоритм Коффмана – Грэма таким образом, что большинство краев переходят от одного слоя к другому вниз; после этого шага узлы внутри каждого слоя располагаются таким образом, чтобы минимизировать пересечения.[18]
- Диаграммы дуги, стиль макета 1960-х годов,[19] разместить вершины на линии; ребра могут быть нарисованы как полукруги выше или ниже линии или как плавные кривые, соединенные вместе из нескольких полукругов.
- Круговая планировка методы помещают вершины графа на круг, тщательно выбирая порядок вершин вокруг круга, чтобы уменьшить пересечения и разместить смежные вершины близко друг к другу. Края могут быть нарисованы либо как хорды круга, либо как дуги внутри или вне круга. В некоторых случаях можно использовать несколько кругов.[20]
- Рисунок доминирования размещает вершины таким образом, чтобы одна вершина была направлена вверх, вправо или обеими в другой тогда и только тогда, когда она достижимый из другой вершины. Таким образом, стиль макета делает отношение достижимости графика визуально очевидным.[21]
Графические рисунки для конкретных приложений
Графики и рисунки графиков, возникающие в других областях применения, включают:
- Социограммы, рисунки социальная сеть, как часто предлагают программное обеспечение для анализа социальных сетей[22]
- Диаграммы Хассе, тип графического изображения, предназначенный для частичные заказы[23]
- Dessin d'enfants, тип графического изображения, используемый в алгебраическая геометрия[24]
- Диаграммы состояний, графические изображения конечные автоматы[25]
- Схемы компьютерных сетей, изображения узлов и соединений в компьютерная сеть[26]
- Блок-схемы и Drakon-Charts, чертежи, на которых узлы представляют собой шаги алгоритм а края представляют поток управления между шагами.
- Диаграммы потоков данных, чертежи, на которых узлы представляют компоненты информационная система а края представляют собой движение информации от одного компонента к другому.
- Биоинформатика включая филогенетические деревья, белок-белковое взаимодействие сети и метаболические пути.[27]
В дополнение размещение и маршрутизация шаги автоматизация проектирования электроники (EDA) во многом похожи на рисование графиков, как и проблема жадное вложение в распределенных вычислений, а литература по рисованию графиков включает несколько результатов, заимствованных из литературы EDA. Однако эти проблемы также различаются несколькими важными способами: например, в EDA минимизация площади и длина сигнала более важны, чем эстетика, а проблема маршрутизации в EDA может иметь более двух терминалов на сеть, в то время как аналогичная проблема в рисовании графа обычно включает только пары вершин для каждого ребра.
Программного обеспечения
Программное обеспечение, системы и поставщики систем для рисования графиков включают:
- БиоТкань программное обеспечение с открытым исходным кодом для визуализации больших сетей путем рисования узлов в виде горизонтальных линий.
- Cytoscape, программное обеспечение с открытым исходным кодом для визуализации сетей молекулярного взаимодействия
- Gephi, программное обеспечение для сетевого анализа и визуализации с открытым исходным кодом
- графический инструмент, а бесплатно / бесплатно Python библиотека для анализа графиков.
- Graphviz, система рисования графиков с открытым исходным кодом от Корпорация AT&T[28]
- Linkurious, коммерческое программное обеспечение сетевого анализа и визуализации для графовые базы данных
- Mathematica, универсальный вычислительный инструмент, который включает средства визуализации 2D и 3D графиков и анализа графиков.[29][30]
- Макет автоматического графика Microsoft, библиотека .NET с открытым исходным кодом (ранее называвшаяся GLEE) для построения графиков[31]
- NetworkX - библиотека Python для изучения графиков и сетей.
- Программное обеспечение Тома Сойера[32] Tom Sawyer Perspectives - это графическое программное обеспечение для построения графиков корпоративного класса, а также приложений визуализации и анализа данных. Это пакет разработки программного обеспечения (SDK) с графическим дизайном и средой предварительного просмотра.
- Тюльпан (программное обеспечение),[33] инструмент визуализации данных с открытым исходным кодом
- yEd, редактор графиков с функцией компоновки графиков[34]
- PGF / TikZ 3.0 с
график
пакет (требуется LuaTeX ).[35] - ЛаНет-Ви, программное обеспечение для визуализации больших сетей с открытым исходным кодом
- Эдро Макс Программное обеспечение для построения 2D технических диаграмм
Рекомендации
- Сноски
- ^ Di Battista et al. (1994), стр. vii – viii; Герман, Мелансон и Маршалл (2000), Раздел 1.1, «Типичные области применения».
- ^ а б Di Battista et al. (1994), п. 6.
- ^ а б Di Battista et al. (1994), п. viii.
- ^ Misue et al. (1995)
- ^ Кнут, Дональд Э. (2013), «Две тысячи лет комбинаторики», Уилсон, Робин; Уоткинс, Джон Дж. (Ред.), Комбинаторика: древнее и современное, Oxford University Press, стр. 7–37..
- ^ Холтен и ван Вейк (2009); Holten et al. (2011).
- ^ Гарг и Тамассия (1995).
- ^ Лонгабо (2012).
- ^ Di Battista et al. (1994), Раздел 2.1.2, Эстетика, стр. 14–16; Покупка, Коэн и Джеймс (1997).
- ^ Di Battista et al. (1994), стр.14.
- ^ Di Battista et al. (1994), п. 16.
- ^ а б Пах и Шарир (2009).
- ^ Опубликовано в Гранджан, Мартин (2014). "La connaissance est un réseau". Les Cahiers du Numérique. 10 (3): 37–54. Дои:10.3166 / lcn.10.3.37-54. Получено 2014-10-15.
- ^ Di Battista et al. (1994), Раздел 2.7, «Подход, управляемый силой», стр. 29–30, и глава 10, «Методы направленного действия», стр. 303–326.
- ^ Бекман (1994); Корен (2005).
- ^ Di Battista et al. (1994), Глава 5, «Поток и ортогональные рисунки», стр. 137–170; (Eiglsperger, Fekete & Klau 2001 ).
- ^ Герман, Мелансон и Маршалл (2000), Раздел 2.2, «Традиционный макет - Обзор».
- ^ Сугияма, Тагава и Тода (1981); Бастерт и Матушевски (2001); Di Battista et al. (1994), Глава 9, «Многослойные рисунки орграфов», стр. 265–302.
- ^ Саати (1964).
- ^ Doğrusöz, Madden & Madden (1997).
- ^ Di Battista et al. (1994), Раздел 4.7, «Рисунки доминирования», стр. 112–127.
- ^ Скотт (2000); Брандес, Фриман и Вагнер (2014).
- ^ Di Battista et al. (1994), стр. 15–16, и глава 6, «Поток и восходящая планарность», стр. 171–214; Фриз (2004).
- ^ Заппони (2003).
- ^ Андерсон и Хед (2006).
- ^ Ди Баттиста и Римондини (2014).
- ^ Бахмайер, Брандес и Шрайбер (2014).
- ^ «Graphviz и Dynagraph - инструменты для рисования статических и динамических графиков», написанные Джоном Эллсоном, Эмденом Р. Ганснером, Элефтериосом Куцофиосом, Стивеном С. Норт и Гордоном Вудхаллом в Юнгер и Мутцель (2004).
- ^ График Документация по системе Mathematica
- ^ Учебник по рисованию графиков
- ^ Нахмансон, Робертсон и Ли (2008).
- ^ Madden et al. (1996).
- ^ «Tulip - среда визуализации огромных графов», Дэвид Обер, в Юнгер и Мутцель (2004).
- ^ «yFiles - Визуализация и автоматическая компоновка графиков», Роланд Визе, Маркус Эйглспергер и Майкл Кауфманн, в Юнгер и Мутцель (2004).
- ^ Тантау (2013); см. также старшего Презентация GD 2012
- Общие ссылки
- Ди Баттиста, Джузеппе; Идс, Питер; Тамассия, Роберто; Толлис, Иоаннис Г. (1994), «Алгоритмы построения графиков: аннотированная библиография», Вычислительная геометрия: теория и приложения, 4 (5): 235–282, Дои:10.1016 / 0925-7721 (94) 00014-х.
- Ди Баттиста, Джузеппе; Идс, Питер; Тамассия, Роберто; Толлис, Иоаннис Г. (1998), Рисование графиков: алгоритмы визуализации графиков, Prentice Hall, ISBN 978-0-13-301615-4.
- Герман, Иван; Мелансон, Гай; Маршалл, М. Скотт (2000), «Графическая визуализация и навигация в визуализации информации: обзор», IEEE Transactions по визуализации и компьютерной графике, 6 (1): 24–43, Дои:10.1109/2945.841119.
- Юнгер, Михаэль; Муцель, Петра (2004), Программное обеспечение для рисования графиков, Springer-Verlag, ISBN 978-3-540-00881-1.
- Кауфманн, Майкл; Вагнер, Доротея, ред. (2001), Графики рисования: методы и модели, Конспект лекций по информатике, 2025, Springer-Verlag, Дои:10.1007/3-540-44969-8, ISBN 978-3-540-42062-0, S2CID 1808286.
- Тамассия, Роберто, изд. (2014), Справочник по рисованию и визуализации графиков, CRC Press, архивировано из оригинал на 2013-08-15, получено 2013-08-28.
- Специализированные подтемы
- Андерсон, Джеймс Эндрю; Глава, Томас Дж. (2006), Теория автоматов с современными приложениями, Cambridge University Press, стр. 38–41, ISBN 978-0-521-84887-9.
- Бахмайер, Кристиан; Брандес, Ульрик; Шрайбер, Фальк (2014), «Биологические сети», в Тамассия, Роберто (ред.), Справочник по рисованию и визуализации графиков, CRC Press, стр. 621–651..
- Бастерт, Оливер; Матушевский, Кристиан (2001), «Многослойные рисунки диграфов», у Кауфманна, Михаэля; Вагнер, Доротея (ред.), Графики рисования: методы и модели, Конспект лекций по информатике, 2025, Springer-Verlag, стр. 87–120, Дои:10.1007/3-540-44969-8_5, ISBN 978-3-540-42062-0.
- Бекман, Брайан (1994), Теория построения спектрального графа, Тех. Отчет MSR-TR-94-04, Microsoft Research.
- Брандес, Ульрик; Freeman, Linton C .; Вагнер, Доротея (2014), «Социальные сети», в Тамассия, Роберто (ред.), Справочник по рисованию и визуализации графиков, CRC Press, стр. 805–839.
- Ди Баттиста, Джузеппе; Римондини, Массимо (2014), «Компьютерные сети», в Тамассия, Роберто (ред.), Справочник по рисованию и визуализации графиков, CRC Press, стр. 763–803..
- Dorusöz, Uur; Мэдден, Брендан; Мэдден, Патрик (1997), «Круговой макет в инструментарии Graph Layout», в North, Stephen (ed.), Симпозиум по рисованию графиков, GD '96, Беркли, Калифорния, США, 18–20 сентября 1996 г., Труды, Конспект лекций по информатике, 1190, Springer-Verlag, стр. 92–100, Дои:10.1007/3-540-62495-3_40, ISBN 978-3-540-62495-0.
- Эйглспергер, Маркус; Фекете, Шандор; Клау, Гуннар (2001), «Рисование ортогонального графа», у Кауфманна, Михаэля; Вагнер, Доротея (ред.), Рисование графиков, Конспект лекций по информатике, 2025, Springer Berlin / Heidelberg, стр. 121–171, Дои:10.1007/3-540-44969-8_6, ISBN 978-3-540-42062-0.
- Фриз, Ральф (2004), «Автоматизированное рисование решетки», в Эклунде, Питер (ред.), Решетки концепций: Вторая международная конференция по анализу формальных концепций, ICFCA 2004, Сидней, Австралия, 23-26 февраля 2004 г., Труды (PDF), Конспект лекций по информатике, 2961, Springer-Verlag, стр. 589–590, CiteSeerX 10.1.1.69.6245, Дои:10.1007/978-3-540-24651-0_12, ISBN 978-3-540-21043-6.
- Гарг, Ашим; Тамассия, Роберто (1995), "Тестирование восходящей планарности", Заказ, 12 (2): 109–133, CiteSeerX 10.1.1.10.2237, Дои:10.1007 / BF01108622, МИСТЕР 1354797, S2CID 14183717.
- Холтен, Дэнни; Изенберг, Петра; ван Вейк, Ярке Дж.; Фекете, Жан-Даниэль (2011), «Расширенная оценка читабельности сужающихся, анимированных и текстурированных представлений направленных ребер в графах узловых связей», Симпозиум по визуализации IEEE Pacific (PacificVis 2011) (PDF), стр. 195–202, Дои:10.1109 / PACIFICVIS.2011.5742390, ISBN 978-1-61284-935-5, S2CID 16526781.
- Холтен, Дэнни; ван Вейк, Ярке Дж. (2009), «Исследование пользователей о визуализации ориентированных ребер в графах», Материалы 27-й Международной конференции по человеческому фактору в вычислительных системах (CHI '09) (PDF), стр. 2299–2308, CiteSeerX 10.1.1.212.5461, Дои:10.1145/1518701.1519054, ISBN 9781605582467, S2CID 9725345, заархивировано из оригинал (PDF) на 2011-11-06.
- Корен, Иегуда (2005), «Рисование графиков по собственным векторам: теория и практика» (PDF), Компьютеры и математика с приложениями, 49 (11–12): 1867–1888, Дои:10.1016 / j.camwa.2004.08.015, МИСТЕР 2154691, заархивировано из оригинал (PDF) на 2012-04-02, получено 2011-09-17.
- Лонгабо, Уильям (2012), «Расчесывание комка волос с помощью BioFabric: новый подход к визуализации больших сетей» (PDF), BMC Bioinformatics, 13: 275, Дои:10.1186/1471-2105-13-275, ЧВК 3574047, PMID 23102059.
- Мэдден, Брендан; Мэдден, Патрик; Пауэрс, Стив; Химсольт, Майкл (1996), «Портативная компоновка и редактирование графиков», в Бранденбурге, Франц Дж. (Редактор), Рисование графиков: симпозиум по рисованию графиков, GD '95, Пассау, Германия, 20–22 сентября 1995 г., Труды, Конспект лекций по информатике, 1027, Springer-Verlag, стр. 385–395, Дои:10.1007 / BFb0021822, ISBN 978-3-540-60723-6.
- Misue, K .; Eades, P .; Lai, W .; Сугияма, К. (1995), «Корректировка макета и ментальная карта», Журнал визуальных языков и вычислений, 6 (2): 183–210, Дои:10.1006 / jvlc.1995.1010.
- Нахмансон, Лев; Робертсон, Джордж; Ли, Бонгшин (2008), «Рисование графиков в GLEE» (PDF)в Хонг, Сок-Хи; Нисизэки, Такао; Цюань, Ву (ред.), Графический рисунок, 15-й Международный симпозиум, GD 2007, Сидней, Австралия, 24–26 сентября 2007 г., исправленные статьи, Конспект лекций по информатике, 4875, Springer-Verlag, стр. 389–394, Дои:10.1007/978-3-540-77537-9_38, ISBN 978-3-540-77536-2.
- Пах, Янош; Шарир, Миха (2009), «5.5 Угловое разрешение и наклоны», Комбинаторная геометрия и ее алгоритмические приложения: лекции по Алкале, Математические обзоры и монографии, 152, Американское математическое общество, стр. 126–127.
- Покупка, H.C.; Коэн, Р. Ф .; Джеймс, М. И. (1997), «Экспериментальное исследование основ алгоритмов рисования графов» (PDF), Журнал экспериментальной алгоритмики, 2, Статья 4, Дои:10.1145/264216.264222, S2CID 22076200[постоянная мертвая ссылка ].
- Саати, Томас Л. (1964), «Минимальное количество пересечений в полных графах», Proc. Natl. Акад. Sci. СОЕДИНЕННЫЕ ШТАТЫ АМЕРИКИ., 52 (3): 688–690, Дои:10.1073 / pnas.52.3.688, ЧВК 300329, PMID 16591215.
- Скотт, Джон (2000), «Социограммы и теория графов», Анализ социальных сетей: справочник (2-е изд.), Sage, стр. 64–69, ISBN 978-0-7619-6339-4.
- Сугияма, Кодзо; Тагава, Сёдзиро; Тода, Мицухико (1981), "Методы визуального понимания структур иерархических систем", IEEE Transactions по системам, человеку и кибернетике, СМЦ-11 (2): 109–125, Дои:10.1109 / TSMC.1981.4308636, МИСТЕР 0611436, S2CID 8367756.
- Тантау, Тилль (2013), «Рисование графиков в TikZ», Журнал графических алгоритмов и приложений, 17 (4): 495–513, Дои:10.7155 / jgaa.00301.
- Заппони, Леонардо (август 2003 г.), "Что такое Dessin d'Enfant" (PDF), Уведомления Американского математического общества, 50: 788–789.
внешняя ссылка
- Библиотека GraphX для .NET: библиотека WPF с открытым исходным кодом для расчета и визуализации графиков. Поддерживает множество алгоритмов компоновки и краевой маршрутизации.
- Архив электронной печати для рисования графиков: включая информацию о статьях из всех Симпозиумы по рисованию графиков.
- Рисование графика в Керли для множества дополнительных ссылок, связанных с рисованием графиков.