Python中的高效可视化

2024-10-03 17:27:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个随机过程的数据(由我为它编写的一个算法生成),这个随机过程由有限空间上的合并和分支随机游动组成,我想用python和matplotlib中的一些东西来可视化。你知道吗

数据如下所示:

当某个过程发生变化时(一次行走移动到一个空的点,与另一个或一个新粒子结合,或者一个新粒子诞生),这个过程的状态列表,比如说这个过程存在于{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来做这件事。你知道吗

我在谷歌上搜索了一下,找到了matplotlib,还看了一些教程,除了箭头以外,我还尝试通过在所有状态上循环plt.scatter()来可视化进程的状态(没有事件),但是虽然这稍微快一点,但仍然非常慢,而且看起来也很混乱。你知道吗

那么,我该如何以一种合理的方式来描绘这一点呢?即使是像“学会正确使用Python进行绘图”这样的链接也可以作为答案。谢谢!你知道吗


Tags: the数据in列表timematplotlib过程状态
1条回答
网友
1楼 · 发布于 2024-10-03 17:27:35

matplotlib不用于交互式打印。用于生成文章质量图。对于交互式绘图,您可以尝试使用Chaco或其他libs。查科的思想是创造一个情节,并将其与数据联系起来。更新数据时,图表会自动更新。你知道吗

相关问题 更多 >