Вопрос

У меня есть большой направленный ациклический график, который я хотел бы визуализировать на изображении растрового изображения.

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

Есть ли хороший алгоритм для разработки координат всех узлов, которые соответствуют этим ограничениям и создаст хорошую визуализацию?

Это было полезно?

Решение

Я советую вам использовать Гефи.

Этот мягкий может делать все, что вы хотите, особенно макеты графов!

Другие советы

Посмотрите на График Сбор программного обеспечения. Он содержит несколько программ для рендеринга графиков.

Самый простой способ - написать свой график на диск, в одном из текстовых форматов Graphviz. Затем выполните одну из программ рендеринга и загрузите полученное изображение в ваше приложение.

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

Вы можете быть заинтересованы в сложном рисунке графика (также известного как «рисунок иерархического графика» или «рисунок графика в стиле Sugiyama»). Алгоритм слишком длинный, чтобы описать здесь, но поиски Google поднимают много надежных объяснений.

Вы можете попробовать этот пакет Go, который я написал: https://github.com/h8liu/e8tools/tree/master/dagvis

Пример: http://lonnie.io/gostd/dagvis/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top