循环中生成的多个(matplotlib)绘图未明显更新

2024-09-28 22:14:35 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我试图在一个循环中生成两个单独的图形,这样在每次迭代中,绘图都会用函数的最新输出刷新:

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(),但这并不能解决问题)


Tags: importplotasnppltrandomclearrandint
1条回答
网友
1楼 · 发布于 2024-09-28 22:14:35

找到了一个解决方案,我用figA.canvas.draw()和figB.canvas.draw()替换了plt.show(),这将刷新每个循环上的两个绘图

我仍然不知道这到底是怎么回事,为什么会起作用。matplotlib函数似乎不必要地不透明和完全不同,以完成本应是简单的绘图任务

相关问题 更多 >