因此,我试图在一个循环中生成两个单独的图形,这样在每次迭代中,绘图都会用函数的最新输出刷新:
import numpy as np
from matplotlib import pyplot as plt
figA, axA = plt.subplots()
figB, axB = plt.subplots()
for n in range(10):
dataA = np.random.randint(0, 10, 10)
dataB = np.random.randint(0, 10, 10)
axA.clear()
axB.clear()
axA.plot(dataA)
axB.plot(dataB)
plt.show()
plt.pause(1)
然而,现在发生的事情是,只有figB被明显更新,而figA没有。循环完成后,两个图都显示最终输出
为什么两个数字在每个循环上都没有明显的更新
(编辑:可运行代码,添加plt.show(),但这并不能解决问题)
找到了一个解决方案,我用figA.canvas.draw()和figB.canvas.draw()替换了plt.show(),这将刷新每个循环上的两个绘图
我仍然不知道这到底是怎么回事,为什么会起作用。matplotlib函数似乎不必要地不透明和完全不同,以完成本应是简单的绘图任务
相关问题 更多 >
编程相关推荐