gpt4 book ai didi

python - Matplotlib draw() 方法不执行任何操作

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:54 25 4
gpt4 key购买 nike

我想使用 matplotlib 中的 draw() 方法来动态更新绘图。我试过简单地使用,

import matplotlib.pyplot as plt
import time

plt.plot(range(10))
plt.draw()

但这实际上并没有做任何事情。程序执行然后关闭,从未显示任何情节。我运行了以下程序,希望 show 方法会生成一个带有后端的绘图窗口,然后进行更新,但我得到的只是后端使用第一个 show 命令绘制绘图,并且随后永远不会更新。我认为 show() 方法会挂起 session ,直到窗口关闭。

import matplotlib.pyplot as plt
import time

plt.plot(range(10))
plt.show()
time.sleep(1)
plt.plot(range(50))
plt.draw()

我运行的是最新版本的 Mac OS X(截至 2014 年 7 月 15 日)。好吧,那是行不通的。接下来,我尝试使用与默认后端不同的后端(“tkagg”)。我还启用了 matplotlib 的交互模式 (ion())。

import matplotlib
matplotlib.use('tkagg')
import matplotlib.pyplot as plt
import time

plt.ion()
plt.plot(range(10))
plt.show()
time.sleep(1)
plt.plot(range(50))
plt.draw()

接下来,我想可能不再需要 show() 和 draw() 方法,所以我删除了它们。当我这样做时,程序会在不显示窗口的情况下执行并关闭。

如果 draw() 方法不修改 Canvas ,我如何动态更新绘图。当我从命令行使用 pythong 解释器时,这种交互模式的东西可以工作,但是一旦我用“python myfile.py”执行文件,它就不会发生。我已经下载并尝试了一百万个例子,但没有一个真正更新我电脑上的情节……救命!!

最佳答案

import matplotlib.pyplot as plt

plt.plot(range(10))
plt.show()
plt.plot(range(50))
plt.show()

以上对我有用。您需要关闭第一个绘图窗 Eloquent 能获得第二个绘图窗口。这是因为 plt.show() 是一个阻塞函数。它会阻止程序,直到您真正关闭窗口。

相反,如果您希望在同一窗口中显示绘图。然后使用matplotlib中的交互模式。

import matplotlib.pyplot as plt
import time

plt.ion()
plt.plot(range(10))
plt.draw()
time.sleep(20)
plt.plot(range(50))
plt.draw()
time.sleep(20)

这确实有效,但是,在我的电脑上,它不会在前台打开绘图窗口。因此,在 OSX 中向上滑动以找到窗口。

关于python - Matplotlib draw() 方法不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24768662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com