如何为社交网络的成长提供动画效果?


12

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

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

Answers:


12

花式动画很棒

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

您可以使用matplotlib创建动画

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

但是D3.js提供了交互

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

结论

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


谢谢,我喜欢这个Python / networkx / matplotlib解决方案,因为它是我的默认工作环境,并且很容易用此代码制作gif。尽管如此,在Web上看起来更好的东西还是会击败该解决方案:)
Wojciech Walczak 2014年

6

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

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

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

这是上面链接的屏幕。 在此处输入图片说明


1
嗨,谢谢您的提示,但我希望以动态形式轻松在Web上发布这些内容。另外,我更喜欢免费的解决方案,而Tableau(如果我错了,请纠正我)仅作为试用版提供。
Wojciech Walczak 2014年

它还具有“公共”版本,这意味着您必须在网络上存储/共享结果,并且无法将其保存在本地。
IharS,2014年

2
@WojciechWalczak也许可以使用gephi代替Tableau。
阿米尔·阿里·阿克巴里

6

事实证明,使用vis.js可以轻松完成此任务。是我发现的最好的示例代码。

我以此为基础的示例在此处(滚动至本文的底部)。此图表示Facebook朋友的子网的增长。绿点是雌性,蓝点是雄性。颜色越深,用户年龄越大。通过单击“ Dodajwęzły”,您可以向图形添加更多节点和边。

无论如何,我仍然对完成此任务的其他方式感兴趣,因此我现在不会接受任何答案。

感谢您的贡献!


您的链接已损坏
user1870400
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.