Динамическая визуализация сети

Я имею дело с набором графов среднего порядка (несколько тысяч узлов, несколько сотен тысяч ребер), которые, однако, также имеют временную составляющую.

Это означает, что определенные узлы и/или ребра активны только в определенные промежутки времени.

На данный момент я обрабатываю эту временную природу «вручную», в основном запрашивая график в указанный момент времени и отображая его через yEd , когда мне нужно.

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

Я попытался построить полную сеть (игнорируя временной аспект), визуализировать это, чтобы зафиксировать положение узлов, а затем с некоторым успехом включить / отключить каждое ребро в зависимости от временного измерения. Тем не менее, это взлом, и требуется немало усилий, чтобы упорядочить всю эту информацию. Интересно, есть ли уже что-то, что позаботится об этом (?)

Кто-нибудь знает о какой-либо похожей (на yEd) части программного обеспечения для визуализации динамических сетей?

Ответы (2)

Вы можете использовать модель «Пример сетевого импорта» от Netlogo и настроить ее с помощью кода из «Примера сети» (который показывает анимированный график с перелистыванием ссылок). Обе модели присутствуют в библиотеке моделей (= предустановлены).

Возможно, это не ваш вариант использования, и, возможно, изучение нового языка программирования требует слишком много усилий. Возможно, вам нужно указать диапазон дат с помощью средства выбора даты, и это может быть довольно сложно в Netlogo... Просто скажу: работающее решение в соответствии с вашими требованиями, вероятно, потребует больше работы, чем ожидалось.

введите описание изображения здесь

«Пример сетевого импорта» принимает Nodelist и Edgelist как файлы .txt. Но я не знаю, как импортировать последовательность создания/удаления ссылок. Файл нодлиста, например, выглядит так:

1    1.2    red
2    1.0    blue
3    1.5    yellow
4    2      green
5    1.8    orange
6    1.4    red
7    2      blue
8    1.5    yellow
9    1      green
10   1.2    orange

и крайний список, как это:

1  4  0.8
2  3  1.0
2  5  3
2  7  2.5
2  8  1.3
2  10 2.2
3  9  2.3
5  6  2.8
6  5  1.2
6  9  0.3
7  2  1.1
8  1  2.6
9  8  2.1
10 7  0.2
Спасибо за ваш ответ. Я использовал NetLogo раньше, но я имею дело с чем-то вроде этого (но более сложным). Таким образом, алгоритм компоновки графа является важной особенностью программного обеспечения, которое я ищу. Круговая компоновка не очень полезна в данном конкретном случае, с которым я имею дело.

Возможно, вам следует использовать python и пакет networkx,

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

Доступно множество примеров, и вы можете получить очень эффективную помощь от сообщества stackoverflow .

Спасибо, я так и лечусь на данный момент. Исправление макета с помощью графвиза, а затем построение краев. Но это определенно был бы более презентабельный результат с помощью программного обеспечения, специально созданного для визуализации графиков.