有没有办法一次绘制一组图形而不关闭前一个图形,保持UI的控制,并在最后保持图形打开?也许使用更合适的后端,或者使用OO风格而不是下面使用的pyplot/pylab风格来编写它?一次绘制一个图而不关闭旧图(matplotlib)
例如我知道我可以做
plt.ioff()
for i in range(10)
plt.figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plt.plot(arr)
plt.show()
将等待我在每次迭代
关闭数字我还可以做
plt.ion()
for i in range(10)
plt.figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plt.plot(arr)
将尽可能快,因为它可以生成它们绘制出来(例如10秒),但会阻挡我的整个用户界面(例如,我甚至无法移动窗口),不会显示轴(我只能看到数字窗口),并且会自动关闭所有数字的循环。
,我不是在寻找第三个选项是该
plt.ioff()
for i in range(10)
plt.figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plt.plot(arr)
plt.show()
其中涉及我的屏幕上看到任何东西之前等待100秒。
我在寻找类似Matlab的行为,我可以做
for i = 1:10
figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plot(arr)
drawnow
这将得出一个数字,每10秒,也让我走动例如窗户如果图3位于顶部,我想回到图1,同时生成图4。
编辑: 使用Python 2.7.13,Matplotlib 2.0.0。在Windows 7 SP1上使用Spyder 3.1.3运行它 - 我尝试在内置的IPython控制台,香草Python控制台以及脚本中运行它,所有结果都相同。
理想情况下,我希望能够通过脚本和交互方式(即通过执行脚本或通过复制并粘贴到控制台)来运行它。
你使用的是什么版本的Python? – Astrom
是否要从交互式Python会话或命令行运行代码? –
@Astrom Python 2.7.13,Matplotlib 2.0.0(更新了原来的问题) – dkv