Визуализация DAG

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

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

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

Ответы

Ответ 1

Советую вам использовать Gephi.

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

Ответ 2

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

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

Ответ 3

Bayesian Networks имеет аналогичные требования. Вы можете искать алгоритмы для байесовских сетей. Эта статья может быть полезной.

Ответ 4

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