2014-04-17 3 views
1

이 파일은 작업을해야 작동하지,하지만하지 않습니다하기 matplotlib 대화 형 모드는 윈 7

from matplotlib import pyplot 

pyplot.ion() 
pyplot.plot(range(10)) 

raw_input('Press return to close') 

플롯 창이 나타납니다, 안쪽은 흰색과 모래 시계 커서가 표시됩니다. 텍스트가 셸에 인쇄되고 비어있는 리턴은 빈 플롯 창을 닫습니다.

ipython에서 플롯 할 수 있지만 파일에서 실행해야합니다. Using ion() from pylab causes matplotlib to hang과 정확히 같은 문제가 있지만 해결책이 도움이되지 않습니다.

기본적으로 Qt4Agg를 사용하고 있습니다. 나는 어떤 설정도 변경하지 않았으며, 새로운 Anaconda 설치입니다.

아나콘다와 관련이 없다고 생각합니다. 이전에 Python을 설치했을 때와 똑같은 문제가 있었지만 해결책을 기억하지 못합니다.

나는 최근에 당신이 뭔가를 원하는 같은데요 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

'ion()'과 함께 윈도우에서 문제가 발생했다. 물론 리눅스에서 코드가 잘 작동했다. 나를 위해 그것은 매우 짧은 일시 중지를 도입하여 창문에 흰색 창이 나타나지 않도록하는 데 도움이되었습니다. 내가 포함시킬 필요가있는 코드는'pylab.pause (1.e-6)'입니다. 이것도 당신을 위해 작동합니까? –

+0

플롯 뒤에 pylab.pause (1e-6)를 넣으면 플롯이 나타나지만 대화 형이 아닙니다. 아주 이상한. 무슨 일이 일어나고 있는지 아십니까? – user1508010

+0

어떤 의미에서 대화 형이 아닙니까? 코드에서 제공 한 것보다 더 많은 것을 계획해야합니다. 각 플롯 후에'pyplot.draw()'가 있어야합니다. 이 코드를 사용하여 대화 형 플롯이 새 데이터로 업데이트됩니다. –

답변

0

이외의 대답은 곤란하게 간단했다,

ipython qtconsole --matplotlib 

"트릭"은 --matplotlib 옵션을 추가하는 것입니다. Anaconda 실행 프로그램에서 IPython-qtconsole을 실행하면이 작업이 생략되므로 그 이유를 알 수 없습니다. 적어도 대화 형 플로팅을 지원하지 않으면 pyplot.ion()에 대한 경고를 제공해야합니다.

0

에하기 matplotlib를 업그레이드했습니다. 그것은 리눅스에서 잘 작동합니다. 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 
+0

이로 인해 Windows에서 충돌이 발생했지만 도움을 주셔서 감사합니다. – user1508010

1

이 다른 백엔드를 호출하는 문제를 해결하는 경우, 당신은 이것을 matplotlibrc 파일을 변경하여 영구적 인 변화를 만들 수 있습니다.

불행히도이 파일이 어디에 있는지 확실하지 않습니다. 당신이 그것을 발견 할 때

는 라인 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

+0

matplotlib.rcsetup.all_backends에서 백엔드를 사용해 보았습니다. 대부분 사용할 수 없거나 동일한 문제가 있습니다. 이것이 설치에 문제가있는 것 같아요, 어쩌면 결함이있는 것 같아요. 불행히도 이것은 매우 불행한 방식으로 파이썬 설치와 인터페이스하는 매우 전문화되고 비싼 하드웨어를 실행하는 머신입니다 (설치 파일을 직접 설치합니다). 그래서 파이썬을 다시 설치할 수는 없습니다. – user1508010

+0

흥미 롭다면 [virtualenv] (http://virtualenv.readthedocs.org/en/latest/virtualenv.html)를 사용하여 가상 환경을 설정할 수 있습니까? – Ben

+0

OP는 Anaconda를 사용하기 때문에'conda create'를 사용하여 별도의 환경을 만들어야합니다. – asmeurer