如何使用Python的多处理库返回多个图形?

2024-09-30 00:28:21 发布

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

我有一个函数,它可以模拟一个生化方程系统。我的主管已经要求我开始并行化它,并希望我从同时运行整个函数几次开始。下面是一张由一次模拟绘制的图,基本上我想让这个图显示5倍于并行运行的5个相同进程的结果

enter image description here

这是我用来绘制图表的代码:

for i, label in enumerate(['Enzyme', 'Substrate', 'Enzyme-Substrate complex', 'Product']):
    plt.plot(tao_all, popul_num_all[:, i], label=label)
plt.legend()
plt.tight_layout()
plt.show()

tao_all是一个包含系统当前时间的数组,popul_num_all是另一个包含系统中每个物种的所有离散分子数的数组。这两个都在while循环的每次迭代后更新

这是我到目前为止为并行化部分编写的代码:

if __name__ == '__main__':
with Pool() as Pool:   
    result = Pool.apply_async(gillespie_tau_leaping, [propensity_calc, popul_num, LHS, stoch_rate, popul_num_all, tao_all, rxn_vector, tao, epsi])
print(result.get(timeout=1))

我的系统运行,模拟反应并绘制上图,然后程序到达并行化部分并再次运行,但返回下图:

enter image description here

我有点不确定这两个代码片段的顺序,我应该先运行并行化,然后将结果传递给绘图位吗

为什么图形在并行化之后会发生这样的变化


Tags: 函数代码系统绘制plt数组resultall

热门问题