hse_sna_2024_2 - Daria-Maltseva/pajek GitHub Wiki
Семинар 2. Ввод сетевых данных и визуализация
В рамках этого семинара вы получите навыки по работе в программе Pajek:
- познакомитесь с разными форматами ввода сетевых данных
- узнаете, как считывать дополнительную информацию об атрибутах узлов
- научитесь самостоятельно создавать сетевые объекты
- научитесь открывать имеющийся набор сетевых данных для дальнейшей работы с ним
- научитесь базовым образом визуализировать сети
(2) Ввод сетевых данных и визуализация
Различные форматы сетевых данных
На семинаре мы говорили про разные возможные форматы для ввода сетевых данных в программу Pajek. Ниже представлены примеры того, как может быть "записана" рассмотренная нами сеть.
Посмотрите по очереди на эти примеры и определите, какой формат записи сетевых данных в них реализован:
example1
example2
example3
А теперь посмотрите на эти примеры и найдите, в чем разница:
example1
example2
example3
Вы можете самостоятельно сохранить сеть с координатами, "включив" эту возможность (но если сохранение положения узлов не принципиально, эту опцию нужно отключать, т.к. она увеличивает размер сетевого файла).
Pajek main window - Options - Read-Write - Save coordinates of vertices
Координаты позволяют нам указывать конкретное местоположение узлов на сетевом графе. Pajek дает возможность делать визуализации в 3D, поэтому присутствует и третья колонка в координатах, которая по умолчанию устанавливается как 0.5.
Посмотрим внимательное, как записывается информация по сети с разными типами отношений (каждый тип отношений фиксируется отдельно):
example
Создание сетевого файла и визуализация
В примере ниже мы научимся создавать сетевой файл и визуализировать его с использованием дополнительной информации -- векторов (информация об индивидуальных характеристиках узлов) и кластеров / partitions (информация о принадлежности узлов в классам).
Задание: Для сети ниже создайте файл формата net
, откройте его в Pajek и визуализируйте.
Для отображения размера узлов и цвета разделения на группы используйте файлы форматов vec
и clu
.
Сеть:
% HSE seminar 1; 2022
*Vertices 6
1 "a"
2 "b"
3 "c"
4 "d"
5 "e"
6 "f"
*Arcs
1 2
2 1
1 4
1 6
2 6
3 3
5 3
5 6
*Edges
2 5
3 4
Вектор (рассчитан на основании степени узла = degree centrality):
*Vertices 6
1
2
3
2
1
3
Файл vec
Обратите внимание, что центральность по degree для узла С = 3, т.к. у него имеется петля (поэтому он больше структурно похожего на него узла D).
Кластеринг / разделение на группы:
*Vertices 6
1
2
1
2
1
2
Визуализация
Посмотрите, что меняется при изображении разных компонентов и их комбинаций:
Draw -- Network
Draw -- Network + First Partition
Draw -- Network + First Partition + First Vector
В окошке Draw зайдите в меню Options и поменяйте цвета и размеры узлов, связей и лейблов.
Options -- Size -- of Vertices / Lines / Arrows etc.
Options -- Colors -- Edges / Arcs / Vertcies -- Select [выбираем цвет в палитре]
После применения кластеринга цвет узлов определяется через
Partition Colors -- for Vertices
Нужно открыть палитру и выбрать цвет для кластеров 1 и 2 (в файле их 2).
Чтобы отображались различные цвета линий, проверьте, отжата ли галочка в пункте:
Lines - Grey Scale
(в обратном случае это хорошая опция для визуализации больших сетей, которая показывает силу связи градиентом серого).
Сохраните картинку:
Export -- 2D -- JPEG -- RUN [картинка будет максимально приближена к тому, что вы видите на экране]
Export -- 2D -- SVG -- General [картинка будет отличаться от изображения на экране и будет опосредована параметрами в:]
Export -- Options
Практические задания
Задание 1
Вручную внесем данные о коммуникациях между 6 студентами, создадим сетевой файл, откроем и визуализируем его в программе Pajek. При этом взаимные связи переведем из арок (arcs) в ребра (edges), а размер узлов сделаем соотносимым с популярностью студентов (количеством входящих связей).
- Создаем список из всех узлов
% Network 1; 2024
*Vertices 6
1 "Anna"
2 "Boris"
3 "Carl"
4 "Dan"
5 "Elen"
6 "Fedor"
-
Вносим информацию о связях в матрицу по ссылке.
-
Объединяем узлы и связи: дописываем
*Matrix
после списка узлов и вставляем матрицу.
Сохраняем в разрешенииnet
.
Скачать файл с матрицей -
Открываем файл в Pajek
File - Network - Read
или используем кнопку Read Network (первая желтая)
- Трансформируем связи в сети
Network - Create New Network - Transform - Arcs to Edges - Bidirected only - SUM
- Рассчитываем входящую центральность (степень узла)
Network - Create vector - Centrality - Degree - Input
- Визуализируем сеть с учетом вектора
Draw - Network + First vector
Задание 2
Рассмотрим работу с готовыми сетевыми файлами. На примере набора данных про забастовки посмотрим, какой информацией мы обладаем и попробуем представить ее на визуализации. Затем рассчитаем базовые сетевые характеристики.
-
Скачаем набор данных
Informal communication within a sawmill on strike - скачать здесь или здесь. -
Посмотрим на данные
Перед нами файл форматаpaj
, который содержит два файла - сеть в форматеnet
и кластеринг (разделение на группы) в форматеclu
.
*Network Strike.net
*Vertices 24
1 "Frank" 0.0410 0.6175 0.5000 ellipse
2 "Gill" 0.1781 0.5504 0.5000
3 "Ike" 0.2640 0.4079 0.5000
4 "Mike" 0.3465 0.3333 0.5000
5 "Hal" 0.2995 0.4824 0.5000
...
*Arcs
*Edges
1 2 1
2 3 1
2 5 1
...
*Partition Strike_groups.clu
*Vertices 24
2
2
2
2
...
- Откроем файл в Pajek
File - Pajek project file - Read
- Визуализируем сеть
Draw - Network + First Partition
Посмотрите, какие будут изменения, если использовать комбинации ниже:
Draw -- Network
Draw -- Network + First Partition + First Vector
В окне Draw
пройдите в меню Options
и измените цвета и размеры узлов, связей и лейблов.
Options -- Size -- of Vertices / Lines / Arrows etc.
Options -- Colors -- Edges / Arcs / Vertcies -- Select [выбираем цвет в палитре]
После применения разделения на группы (partition), цвет узлов определяется через
Partition Colors -- for Vertices
Нужно открыть палитру и выбрать цвет для трех кластеров. Чтобы отобразить разные цвета линий проверьте, не поставлена ли галочка в опции:
Lines - Grey Scale
(иначе это хорошая опция при визуализации больших сетей, показывающая силу связи градиентом серого цвета). Сохраните картинку:
Export -- 2D -- JPEG -- RUN [the picture will be as close as possible to what you see on the screen]
Export -- 2D -- SVG -- General [the picture will differ from the image on the screen and will be mediated by the parameters in:]
Export -- Options
Более подробная информация по визуализации представлена здесь.
Полезная информация
- При сохранении файлов указывайте их расширение в названии и сохраняйте, используя кавычки, например "Network1.net" или "Partition1.clu". Тогда файлы будут сразу же сохраняться в нужном формате.
- Если вы потеряли окно с отчетом (
Report
) или какое-то другое, то их можно восстановить, используя опцию:
Info - Child Windows - Report Windows - Show
- Сохраняйте сделанный анализ в виде Pajek project file с помощью:
File - Pajek Project File - Save
- Чтобы сохранить детали по визуализации, которые вы сделали, используйте:
File - Ini File - Save
- Установите себе ограничение по числу узлов для визуализации, чтобы программа не зависла, когда Вы работаете с очень большими сетями и случайно нажали на кнопку Draw.
Options - Read / Write - Max vertices to Draw [1000]
Выполнение заданий этого семинара было показано на ДОД магистерской программы "Аналитика данных и прикладная статистика" Мастер-класс DASS «Программа Pajek для анализа и визуализации комплексных сетей».