这是一个可视化/编程设计问题。我正在构建一个基于地理空间代理的模型,这意味着在某个特定的空间容器中有多个代理交互。代理的运动及其交互基于一些有偏的随机游走和积分微分方程。考虑到一些技术限制,我试图弄清楚使用哪个包来可视化这一点。我用python编写了模型原型,但问题就在这里。
我需要一种方法来可视化这些代理之间的交互随着时间的推移。我看了看matplotlib,但是当我添加多个代理时,动画功能会遇到麻烦。我相信在matplotlib网站本身上,作者指出 matplotlib 动画甚至还没有准备好用于中等规模。
我想保持开源——而且是免费的。其他选择似乎是使用 VTK 的 Mayavi。我过去曾使用过它,但不确定 Mayavi 可以如何处理可视化相当数量的代理——比如 100 到 1000 之间。我也不确定 Mayavi 的维护有多积极。
Vispy 是另一种选择。这也是一个非常新的库,所以我不确定它有多稳定。它依赖于 WebGL 的接口。我不确定这是否是一个不错的选择,因为没有多少人有使用它的经验——在 Vispy 上还没有那么多博客文章。
最后,python 中还有一些其他的硬核数学可视化库,例如有限元求解器:Fenics 或其他。但我没有这些方面的经验,所以不确定它们是否可以更好地解决这个特定问题。
如果我缺少任何选择,请提出建议。
附加说明:
我看过 Netlogo 和 Repast 等基于代理的建模软件。我真的不想使用这些,因为它们似乎对可视化和建模选择施加了很多限制——我必须学习另一种语言: )。
更新:
这是来自 Vispy google 小组的关于 VTK 和 mayavi 的注释。
"Mayavi is based on VTK, an old and big library which uses legacy OpenGL
(fixed function pipeline). Mayavi itself is mostly written in C++, and
has trouble attracting contributors. . . . the lead developer has said
its dying a slow death.
Vispy uses modern opengl and is implemented all the way in Python. It
only relies on one of several backends to provide a window to render in.
This makes Vispy more powerful (we can make use of more advanced
shaders) and flexible. Mayavi and VTK have been around for quite a while
though, so it will take some time for Vispy to match the functionality. "