我有一个随机过程的数据(由我为它写的一个算法生成),它包括在有限空间上合并和分支随机游走,我想用python可能看到并可能来自matplotlib。Python中的高效可视化
的数据是这样的:
的在时间过程中的状态列表的清单时,有新的变化(步行移动到的空白点,聚结,与另外一个或一个新的粒子出生),所以像这样的事情(假设过程生活在{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()
这工作,但它是极其缓慢的,因此如果我有一个大的过程需要花费的大量时间,使这个可视化(同时产生的过程数据最多需要几秒钟才能完成相当极端的参数 - 一个很大的空间,时间和很高的粒子出生率,这意味着许多事件经常会改变过程)。我很确定使用这样的箭头是非常愚蠢的,但因为我迄今为止只在R中可视化的东西(我当然可以简单地从python中导出我的数据并在R中将它们可视化,但我想避免这种情况)我在Python中这样做也很绿。
我尝试了一些Google搜索,发现了关于matplotlib,并在那里看了一些教程,除了箭头,我还尝试通过在所有状态中循环plt.scatter()
来直观显示过程的状态(没有事件)速度稍快,但仍然非常缓慢,而且看起来很乱。
那么我该如何以合理的方式绘制这个图?作为答案,甚至可以链接到“学习用Python做阴谋”这样的东西。谢谢!
请更新您的问题以包含实际问题。 :) –