Matplotlib交互模式不能在win 7上运行

时间:2014-04-17 18:34:37

标签: matplotlib anaconda

此文件应该有效,但它不起作用:

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

3 个答案:

答案 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()上发出警告,如果它不支持交互式绘图。