python甚至webgl中具有静态节点的网络动画

python甚至webgl中具有静态节点的网络动画,python,opengl,webgl,ipython,vispy,Python,Opengl,Webgl,Ipython,Vispy,所以我有一个特别的任务需要帮助,但我不知道如何去做。我有一个在固定网络节点之间形成联系的模型。因此,我想设置一个窗口或可视化,显示某种二维或三维网格上的所有节点集。然后,对于每个时间步,我想用节点之间最新的一组关系更新可视化窗口。因此,我将从空间中定位的一组节点开始,然后在每个时间步中,可视化将逐渐添加新的边 这里的挑战是,我知道在networkx中,在每个时间步重新绘制网络是行不通的。许多常见的网络显示算法随机放置节点,以便最大化THNM之间的距离并更好地显示边缘。因此,如果我在每个时间步重新

所以我有一个特别的任务需要帮助,但我不知道如何去做。我有一个在固定网络节点之间形成联系的模型。因此,我想设置一个窗口或可视化,显示某种二维或三维网格上的所有节点集。然后,对于每个时间步,我想用节点之间最新的一组关系更新可视化窗口。因此,我将从空间中定位的一组节点开始,然后在每个时间步中,可视化将逐渐添加新的边

这里的挑战是,我知道在networkx中,在每个时间步重新绘制网络是行不通的。许多常见的网络显示算法随机放置节点,以便最大化THNM之间的距离并更好地显示边缘。因此,如果我在每个时间步重新绘制网络,那么每次节点都会位于不同的位置,因此很难确定网络增长的模式。这就是为什么我需要一组静态节点,这样我就可以看到边是如何在每个时间步添加的

我希望一次可视化大约100个节点。因此,我将从少量节点开始,比如20个左右,然后逐渐增加到100个节点。在验证模型之后,我将构建多达1000或2000个节点。当然,很难可视化1000或2000个节点的网络,这就是为什么我只想确保当我在模拟中只有100个节点时,我可以可视化网络


我不确定我是否可以在webgl或其他东西中实现这一点,或者是否有一种在python中实现这一点的好方法。如果需要,我可以使用Vispy在python和webgl之间进行通信。

这看起来确实是Vispy的一个很好的用例。节点需要使用PointVisual,边需要使用LineVisual。然后,可以在执行模拟时实时更新边

动画也可以在带有WebGL的IPython笔记本中使用


请注意,如果为节点指定静态位置,其他图形工具包也可能适用于您(尽管您不一定需要通过OpenGL进行GPU加速)。我认为您可以使用d3js或networkx来修复节点位置,而不必依赖自动布局算法。

JSNetworkX看起来很有趣,我还没有深入研究过,但看起来一旦您将数据放入其中,您就可以将它们添加到您想要的图形类型*中并将其可视化*尽管它仍然不支持所有类型。