while循环中的空白图

Blank figure in while loop

我在 while 循环中绘制图形时遇到问题(我得到一个没有显示任何图形的空白图形),我在这里缺少什么?我在 Windows 10、Python 3 上提供了一个 运行 的 MWE。但我认为配置不是问题所在:

import matplotlib.pyplot as plt
import time

def refresh(x,y1,y2,y3):
    plt.close('all')

    plt.figure()

    plt.subplot(3,1,1)
    plt.plot(x, y1)
    plt.subplot(3,1,2)
    plt.plot(x, y2)
    plt.subplot(3,1,3)
    plt.plot(x, y3)

    plt.show
    return

plt.ion

A = [1,2,3,4]
B = [15,16,8,2]
C = [8,6,4,7]
D = [5,4,3,1]

while True:
    time.sleep(5)

    refresh(A,B,C,D)

另一个问题是它没有创建图形window,而是在控制台中显示执行后的数据。我希望它每 5 秒创建一个图形 window 显示曲线 "refreshed"。

如果那确实是您代码的副本,您需要实际调用

plt.show()

没有括号表示函数的调用,

plt.show

只是returns它是一个函数,没有实际执行。