Python Matplotlib-强制在脚本中显示

Python Matplotlib-强制在脚本中显示,python,matplotlib,Python,Matplotlib,这与几年前另一个人提出的一个问题密切相关: 我正在MacOSX 10.8.5上使用Canopy 1.5.5,matplotlib 1.4.3 我将需要加载数据,查看它,按enter键批准并移动到下一个数据集(并且这样做几千次,因此获得此功能非常关键)。这是我的MWE: import numpy as np from matplotlib import pyplot as plt plt.ion() plt.figure() ind=np.arange(5) for i in ind:

这与几年前另一个人提出的一个问题密切相关:

我正在MacOSX 10.8.5上使用Canopy 1.5.5,matplotlib 1.4.3

我将需要加载数据,查看它,按enter键批准并移动到下一个数据集(并且这样做几千次,因此获得此功能非常关键)。这是我的MWE:

import numpy as np
from matplotlib import pyplot as plt
plt.ion()
plt.figure() 
ind=np.arange(5)
for i in ind:
    plt.clf()
    plt.scatter(ind,ind+i) 
    plt.title('this is plot number %i' % i) 
    plt.show() 
    u=raw_input("Press any button")
代码似乎做了所有的事情,除了实际向我展示情节。如果我完成脚本(或中断脚本),那么我将看到当前的图形

我已经尝试了前面答案中的所有内容:有和没有交互模式,有和没有plt.show(block=False),plt.draw和plt.show的每个排列,以及我可用列表中的每个后端

这似乎是一个非常基本的功能!请告诉我这是可以做到的。我觉得奇怪的是matplolib在这里说“默认情况下,绘图会推迟到脚本结束”,但没有关于如何覆盖默认值的建议。请帮忙

您的示例适用于我(我的后端是osx),尽管figure窗口最初出现在其他窗口的后面。我需要使用alt tab将其提升到前面

尝试使用IPython的
--matplotlib
选项启动脚本。您可以选择一个后端或让它自动检测,如下所示:
ipython--matplotlib auto-yourscript.py

不确定您现在是否需要输入,但
raw_input
功能会等待您按下返回键,而不仅仅是任何键

编辑:


关于您的最后一句话:解释如何在脚本结束之前强制绘制。这可以通过
draw
功能完成。在交互模式下,每个pyplot命令也调用
draw
。在此上下文中绘制意味着通过后端渲染图形。

是!我在ipython工作。我将继续处理Canopy提示符(从那里仍然不起作用),但是谢谢。