代码之家  ›  专栏  ›  技术社区  ›  Mathieu

Pyplot图形在程序结束前不会打开

  •  0
  • Mathieu  · 技术社区  · 4 年前

    我正在用不同的模块、组件制作一个程序,用OpenCV执行文件/文件夹管理、数据采集、模型计算和在线采集反馈。该程序使用一个非常简单的命令行界面,其核心是一个菜单,用户可以输入一个从1到X的数字来启动所描述的任务。

    [IN] Available options:
         | 1 - Do something
         | 2 - Run acquisition
         | 3 - Compute model
         | 4 - Start something else
         | 5 - Open cv2 windows
         | 6 - Quit
    

    当用户输入 3 以a结尾 matplotlib 绘图让用户评估模型的正确性。

    6 退出。 即使我添加了一个 plt.show() f.show() 带或不带 block=False .

    有没有办法 matplotlib数据库

    可复制示例:

    from matplotlib import pyplot as plt
    
    def input_menu(options, retries=3):
        print ('Available options:')
        for key, value in options.items():
            print (f"    {key} - {value}")
        
        selection = int(input('[IN] What do you want to do ? '))
        return selection
        
    while True:
        selection = input_menu(options={1: 'Plot',
                                        2: 'Quit'})
        
        if selection == 1:
            f, ax = plt.subplots(1, 1, figsize=(10, 10))
            ax.plot([1, 2, 3])
            
        elif selection == 2:
            break
        
        else:
            break
    

    按1;菜单将再次提示,并显示绘图。在按下2键并完成程序之前,绘图不会出现。 我使用spyder作为IDE。在spyder中,选择后端PyQT5。

    python test.py 在候机楼。这一次,按1后,绘图确实如预期显示。无需等待程序完成。

    0 回复  |  直到 4 年前