【问题标题】:Is there a way to update the matplotlib plot without closing the window?有没有办法在不关闭窗口的情况下更新 matplotlib 图?
【发布时间】:2021-04-04 17:18:55
【问题描述】:

我对 matplotlib 完全陌生,经验丰富,但对 python 生疏,目前我正在努力使用 matplotlib。 我正在尝试为情节上的一个点设置动画,有点像这样: https://www.desmos.com/calculator/rv8gbimhon

我已经为它编写了代码,但绘图在 while 循环期间不会实时更新点,而是暂停 while 循环,直到我关闭绘图窗口并且循环的下一次迭代发生,使用更新的坐标重新打开情节。有没有办法在 matplotlib 上移动一个点而不打开和关闭窗口?

我的代码:

import numpy as np
import time
t = 0
start_time = time.time()
while t < 30:
    end_time = time.time()
    t = end_time - start_time
    print(t)
    plt.plot(t,t,"g^")
    plt.show()

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    循环更新绘图的一个选项是打开interactive mode 并使用pause 更新绘图。

    例如:

    import numpy as np
    import matplotlib.pyplot as plt
    point = plt.plot(0, 0, "g^")[0]
    plt.ylim(0, 5)
    plt.xlim(0, 5)
    plt.ion()
    plt.show()
    
    start_time = time.time()
    t = 0
    while t < 4:
        end_time = time.time()
        t = end_time - start_time
        print(t)
        point.set_data(t, t)
        plt.pause(1e-10)
    

    但是,对于更高级的动画,我建议使用animation class

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 2013-02-18
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 2015-08-11
      • 2011-06-25
      相关资源
      最近更新 更多