繁体   English   中英

使用 matplotlib 绘制变化图

[英]Plotting changing graphs with matplotlib

所以我一直试图得到一个图来通过循环更新每次迭代。 我的代码的精简版本如下:

  1 import matplotlib.pyplot as plt
  2 import numpy as np
  3 
  4 x = np.linspace(0, 9, 10)
  5 for j in range(10):
  6     y = np.random.random(10)
  7     plt.plot(x,y)
  8     plt.show()
  9     plt.pause(1)
 10     plt.clf()

我的问题是我必须在创建下一个图之前关闭每个图; 似乎情节卡在 plt.show() 上,而我希望新情节每秒替换当前情节,而无需我的互动。 我咨询了以下问题:

何时使用 cla()、clf() 或 close() 清除 matplotlib 中的绘图?

Python plt:关闭或清晰的数字不起作用

Matplotlib pyplot show() 一旦关闭就不起作用

但似乎没有一个解决方案对我有用。 任何帮助,将不胜感激!

您应该使用 plt.ion() 设置交互模式,并使用 draw 来更新

import matplotlib.pyplot as plt
import numpy as np

plt.ion()
fig=plt.figure()

x = np.linspace(0, 9, 10)
for j in range(10):
    y = np.random.random(10)
    plt.plot(x,y)
    fig.canvas.draw()
    plt.pause(1)
    plt.clf()

教程链接

请注意,它可能不适用于所有平台; 我在 Pythonista/ios 上进行了测试,但没有按预期工作。

matplotlib 教程

注意 交互模式适用于 ipython 和普通 python shell 中的合适后端,但它不适用于 IDLE IDE。 如果默认后端不支持交互性,则可以使用什么是后端?中讨论的任何方法显式激活交互式后端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM