此文件应该有效,但它不起作用:
from matplotlib import pyplot
pyplot.ion()
pyplot.plot(range(10))
raw_input('Press return to close')
出现绘图窗口,内部为白色,并显示沙漏光标。 文本打印在shell中,点击返回关闭空的绘图窗口。
我可以从ipython绘图,但这必须从文件运行。 与Using ion() from pylab causes matplotlib to hang完全相同的问题,但解决方案对我没有帮助。
我默认使用Qt4Agg。我没有改变任何设置,这是一个新的Anaconda安装。
我认为这不是特定于Anaconda的,我在前一段时间使用普通的Python安装时遇到了完全相同的问题,但我不记得解决方案了。
我最近将Matplotlib升级到1.3.1 np18py27_1
Current conda install:
platform : win-32
conda version : 3.0.6
python version : 2.7.6.final.0
root environment : C:\Anaconda (writable)
default environment : C:\Anaconda
envs directories : C:\Anaconda\envs
package cache : C:\Anaconda\pkgs
channel URLs : http://repo.continuum.io/pkgs/free/win-32/
http://repo.continuum.io/pkgs/pro/win-32/
config file : None
is foreign system : False
答案 0 :(得分:1)
如果它修复了您的问题以调用其他后端,则可以通过更改matplotlibrc
文件使其成为永久性更改。
不幸的是,我不确定这个文件在Windows中的位置。
当你找到它时,第32行设置后端使用:
#### CONFIGURATION BEGINS HERE
# the default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg FltkAgg MacOSX QtAgg Qt4Agg TkAgg WX WXAgg Agg Cairo GDK PS
# PDF SVG Template
# You can also deploy your own backend outside of matplotlib by
# referring to the module name (which must be in the PYTHONPATH) as
# 'module://my_backend'
backend : <Whatever works for you>
这将允许您从ipython
之外的文件中运行它答案 1 :(得分:0)
我猜你想要这样的东西。它在linux下工作正常。由于包括1.e-6秒的暂停,它也应该适用于Windows。
import sys
import select
from matplotlib import pyplot
def heardEnter():
i,o,e = select.select([sys.stdin],[],[],0.0001)
for s in i:
if s == sys.stdin:
input = sys.stdin.readline()
return True
return False
pyplot.ion()
pyplot.pause(1.e-6)
print "Press enter to exit plotting"
cont = 1
while cont:
pyplot.plot(range(10 + cont))
pyplot.draw()
cont += 1
if heardEnter():
cont = False
答案 2 :(得分:0)
答案很简单,
ipython qtconsole --matplotlib
&#34;技巧&#34;是添加选项--matplotlib。 从Anaconda启动器运行IPython-qtconsole省略了这一点,我不知道为什么。 至少它应该在pyplot.ion()上发出警告,如果它不支持交互式绘图。