在python中动态更新的图,最后如何保存图像

时间:2019-07-08 21:00:25

标签: python matplotlib

背景

借助以下内容,我创建了一个动态更新的情节

Dynamically updating plot in matplotlib

Updating a plot in python's matplotlib

How to update a plot in matplotlib?

地块代码

plt.ion()
fig_analysis = plt.figure()
for i in range(5):
    ax = fig_analysis.add_subplot(211)    
    l1, = ax.plot(np.linspace(0, 200, simulation_time), variable_1)
    ax.set_ylabel(r'$Variable\ 1$')
    ax = fig_analysis.add_subplot(212)
    l2, = ax.plot(np.linspace(0, 200, simulation_time), variable_2)
    ax.set_ylabel(r'$Variable\ 2$')
    ax.set_xlabel(r'$years$')
    fig_analysis.canvas.draw()
    plt.pause(0.5)

行为

此代码创建一个绘图并对其进行更新。但是,它会在循环完成后关闭最终图

问题

我应该如何修改代码以确保在循环结束时,程序不会关闭绘图窗口,并且可以根据需要保存图像。

手动解决方案

实现此目的的方法之一是手动暂停程序。但是,由于我的程序的运行时间不固定,因此难以实施此策略。

1 个答案:

答案 0 :(得分:1)

添加

viewState.addSource(someLiveData) { networkResourceResult ->
    viewState.value = currentViewState().copy(showLoadingSpinner = networkResource.status)
}

在代码末尾。