运行matplotlib.pyplot的plt.show时,Python脚本会停止

时间:2018-04-26 09:50:19

标签: python matplotlib plot

我正在进行需要一些时间的模拟,所以我想有一个实时情节,每一步都会更新,这样我就可以跟踪最有用的信息并检查一切是否顺利。我使用此功能依赖于matplotlib.pyplot

def monitor(FSI_config,tracking):
  print("Tracking...")
  it = [];
  i=0;
  while i < len(tracking.tracking_vel): 
     it.append(i)     
     i=i+1

  plt.figure(1)

  plt.subplot(211)             # the first subplot in the first figure
  line1, = plt.plot(it, tracking.tracking_pos, linewidth=2.0, 
            color='r', linestyle='--', marker='.', markersize=15, 
            markeredgecolor='k', markerfacecolor='k')#, 
            label=r'$C_D$') 

  plt.subplot(212)      # the second subplot in the first figure

    line1, = plt.plot(it, tracking.tracking_vel, linewidth=2.0, 
    color='r', linestyle='--', marker='.', markersize=15, 
    markeredgecolor='k', markerfacecolor='k')#, label=r'$C_L$')

  plt.show()

因此,函数monitor将在模拟的每个步骤中执行,并绘制tracking中包含的值。下划线重要的是tracking在每一步中都包含要绘制的所有值(在进入monitor之前,每个新值都附加在新步骤的末尾)现在,除了详细信息之外脚本,真正的一点是,一旦函数执行plt.show(),整个模拟就会停止,直到图形关闭。是否有一种方法可以将图形保留在后台,同时脚本继续运行,并在新图形(在下一步骤)绘制更新值之前自动关闭它?

感谢您的帮助

PS:问题与real-time plotting in while loop with matplotlib不同,因为我们在谈论自我更新的情节而不是for / while循环内的情节。

0 个答案:

没有答案