Я имею дело с набором графов среднего порядка (несколько тысяч узлов, несколько сотен тысяч ребер), которые, однако, также имеют временную составляющую.
Это означает, что определенные узлы и/или ребра активны только в определенные промежутки времени.
На данный момент я обрабатываю эту временную природу «вручную», в основном запрашивая график в указанный момент времени и отображая его через yEd , когда мне нужно.
НО , когда вы пытаетесь изобразить временную эволюцию сети, узлы «прыгают», потому что их положение не фиксируется на протяжении всей визуализации.
Я попытался построить полную сеть (игнорируя временной аспект), визуализировать это, чтобы зафиксировать положение узлов, а затем с некоторым успехом включить / отключить каждое ребро в зависимости от временного измерения. Тем не менее, это взлом, и требуется немало усилий, чтобы упорядочить всю эту информацию. Интересно, есть ли уже что-то, что позаботится об этом (?)
Кто-нибудь знает о какой-либо похожей (на yEd) части программного обеспечения для визуализации динамических сетей?
Вы можете использовать модель «Пример сетевого импорта» от 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
Возможно, вам следует использовать python и пакет networkx
,
Вы можете получить полный контроль над временным аспектом и легко обрабатывать любые данные.
Доступно множество примеров, и вы можете получить очень эффективную помощь от сообщества stackoverflow .
А_А