如何激活社交网络的增长?

数据挖掘 社会网络分析 时间序列 javascript 可视化
2021-09-22 03:51:36

我正在寻找一个库/工具来可视化添加新节点/边缘时社交网络如何变化。

现有的解决方案之一是SoNIA:Social Network 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 或类似的算法来调整图形的布局。

3个回答

花哨的动画很酷

当我看到discourse git仓库这个动画时,我印象非常深刻。他们使用了专门用于 git 的Gourse 。但它可能会提供有关如何表示增长动态的想法。

您可以使用 matplotlib 创建动画

这个 stackoverflow 答案似乎指向 python/networkx/matplotlib 解决方案。

但 D3.js 提供交互

如果您正在寻找基于 Web 的解决方案,那么 d3.js 非常好。例如,请参见thisthisthis另请参阅此 stackoverflow 问题,接受的答案再次指向 D3.js。

结论

我会被用于网络分析的 python/networkx 选项所吸引(例如,可能将属性添加到您的原始数据文件中)。然后,对于可视化和传播,D3.js 是完美的。你可能会惊讶于一旦你开始编写 d3.js 是多么容易。我相信它甚至可以在 ipython 笔记本中使用!

事实证明,使用vis.js很容易完成这项任务是我找到的最好的示例代码。

我在此基础上构建的示例在这里(滚动到这篇文章的底部)。此图表示 Facebook 朋友子网络的增长。绿点是雌性,蓝点是雄性。颜色越深,用户年龄越大。通过单击“Dodaj węzły”,您可以向图中添加更多节点和边。

无论如何,我仍然对完成这项任务的其他方式感兴趣,所以我暂时不接受任何答案。

感谢您的贡献!

我的第一个猜测是在 Tableau 中可视化社交网络

特别是:在 Tableau 中构建网络图

您需要在“页面”部分添加时间维度,以便能够查看网络变化动态。

这是上面链接中的屏幕。 在此处输入图像描述