Як оживити зростання соціальної мережі?


12

Я шукаю бібліотеку / інструмент, щоб візуалізувати, як змінюється соціальна мережа, коли до неї додаються нові вузли / краї.

Одним із існуючих рішень є SoNIA: Social Animator Image Animator . Це дозволяє вам зробити фільми , як цей .

Документація SoNIA говорить про те, що вона наразі зламана, і, крім цього, я вважаю за краще рішення на основі JavaScript. Отже, моє запитання: чи знайомі ви з будь-якими інструментами чи чи можете ви вказати мене на деякі бібліотеки, які зробили б це завдання максимально простим?

Одразу після публікації цього питання я переконуюсь на sigma.js , тому, будь ласка, розгляньте цю бібліотеку.

Загалом, мої вхідні дані були б приблизно такими:

time_elapsed; node1; node2
1; A; B
2; A; C
3; B; C

Отже, тут маємо три моменти часу (1, 2, 3), три вузли (A, B, C) і три ребра, які представляють тріадне замикання між трьома розглянутими вузлами.

Більше того, кожен вузол матиме два атрибути (вік і стать), тому я хотів би мати можливість змінити форму / колір вузлів.

Крім того, після додавання нового вузла було б ідеально мати якийсь ForceAtlas2 або подібний алгоритм для налаштування компонування графіка.

Відповіді:


12

Фантастичні анімації класні

Я був дуже вражений , коли я побачив цю анімацію в дискурсі сховища. Вони використовували Gourse, який спеціально для git. Але це може дати ідеї про те, як представити динаміку зростання.

Ви можете створювати анімації за допомогою matplotlib

Ця відповідь stackoverflow, схоже, вказує на рішення python / networkx / matplotlib.

Але D3.js забезпечує взаємодію

Якщо ви шукаєте веб-рішення, то d3.js - це чудово. Дивіться це , це і це, наприклад. Дивіться також це питання stackoverflow, прийнята відповідь знову вказує на D3.js.

Висновок

Я б звернувся до параметрів python / networkx для аналізу мережі (можливо, щоб додати атрибути до вашого необробленого файлу даних, наприклад). Тоді для візуалізації та розповсюдження D3.js ідеально підходить. Ви можете бути здивовані, як легко написати d3.js, як тільки ви потрапите в нього. Я вважаю, що це працює навіть у зошиті ipython!


Дякую, мені подобається це рішення Python / networkx / matplotlib, оскільки це моє робоче середовище за замовчуванням, і легко зробити gif з цього коду. І все-таки щось, що виглядає приємніше в Інтернеті, перемогло б це рішення :)
Войцех Вальчак

6

Моя перша здогадка - це візуалізувати соціальну мережу в Tableau .

І зокрема: побудова графіків мережі в Tableau .

Вам потрібно додати часовий вимір до розділу "Сторінки", щоб мати можливість бачити динаміку зміни мережі.

Це екран за посиланням вище. введіть тут опис зображення


1
Привіт, дякую за цю пораду, але я б хотів щось, що легко публікується в Інтернеті в динамічній формі. Також я віддаю перевагу безкоштовні рішення, тоді як Tableau - виправте мене, якщо я помиляюся - доступний лише як пробна версія.
Войцех Вальчак

У ньому також є "Громадське" видання, що означає, що ви повинні зберігати / ділитися своїми результатами в Інтернеті, і не можете зберегти їх на локальному рівні.
IharS

2
@WojciechWalczak Можливо, замість Tableau можна використовувати гефі .
Амір Алі Акбарі

6

Виявилося, що це завдання було досить легко виконати з допомогою vis.js . Це був найкращий приклад коду, який я знайшов.

Приклад того, що я будував на цьому, є тут (прокрутіть донизу цієї публікації). Цей графік відображає зростання підмережі друзів у Facebook. Зелені крапки - це самки, сині - самці. Чим темніше колір, тим старше користувач. Натиснувши "Додати węzły", ви можете додати більше графіків до країв.

У будь-якому разі мене все ще цікавлять інші способи виконання цього завдання, тому я не прийму жодної відповіді, як зараз.

Дякуємо за ваш внесок!


ваші посилання порушені
користувач1870400
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.