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它是一个函数,没有实际执行。
我在 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它是一个函数,没有实际执行。