Python 中的高效可视化

Efficient visualisation in Python

我有一个随机过程的数据(由我为其编写的算法生成),该随机过程由有限 space 上的合并和分支随机游走组成,我想使用 python 进行可视化可能还有来自 matplotlib 的东西。

数据如下所示:

A list of 列出了某些情况发生变化时过程的状态(步行移动到一个空点,与另一个合并或新粒子诞生),所以像这样的事情(假设过程住在 {0,1,2,3,4}:

[[0,1,2,0,2],...,[1,0,2,2,0]],所以一开始我从位置 1,2 和 4 处有粒子的过程开始(有两种不同的粒子,因此“1”表示存在第一种类型,第二个“2”,整个“0”没有任何意义)

我还有一个改变过程的事件列表,所以列表的形式是

[place,time,type]

所以我知道在什么地方什么时间发生了什么(这对应于在图形表示中写下适当的标记,例如,如果事件是粒子向左移动,则向左箭头)。

我写了这样的东西:

import pylab as P
P.plot(-spacebound,0,spacebound,maxtime)
while something in the process:
    current=listofevents.pop(0)
    for i that are nonempty at current time:
        P.arrow() in a way corresponding to the data

P.show()

这行得通,但它非常慢,所以如果我有一个大过程,则需要花费大量时间来进行这种可视化(而生成过程数据最多需要几秒钟才能获得相当极端的参数 - a大 space、时间和高粒子诞生率,这意味着很多事件经常改变过程)。

我很确定使用这样的箭头是非常愚蠢的,但是因为到目前为止我只在 R 中可视化了东西(我当然可以简单地从 python 导出我的数据并在 R 中可视化它们但是我想避免这种情况)我在 Python.

中也很擅长这样做

我尝试了一些谷歌搜索,发现了 matplotlib 并查看了那里的一些教程,除了箭头之外,我还尝试通过在所有状态,但是虽然这稍微快一点,但它仍然非常慢,而且看起来也很乱。

那么我该如何以合理的方式绘制它呢?即使是 link 到 "learn to do plotting in Python properly" 之类的答案也欢迎。谢谢!

matplotlib 不适用于交互式绘图。它用于生成文章质量图。对于交互式图,您可以尝试使用 Chaco 或其他库。 Chaco 的思想是创建一个图,然后 link 将其与数据结合起来。当您更新数据时,您的图表会自动更新。