복붙노트

[PYTHON] Matplotlib python show ()가 즉시 반환됩니다.

PYTHON

Matplotlib python show ()가 즉시 반환됩니다.

나는 같은 그림에 그래프를 그려주는 간단한 파이썬 스크립트를 가지고있다. 모든 그래프는 draw ()에 의해 생성되고 결국에는 show () 함수를 호출하여 차단합니다.

이 스크립트는 Python 2.6.6, Matplotlib 0.99.3 및 Ubuntu 11.04와 함께 사용되었습니다. Python 2.7.2, Matplotlib 1.0.1 및 Ubuntu 11.10에서 실행하려고 시도했지만 show () 함수는 그림을 죽일 때까지 기다리지 않고 즉시 반환됩니다.

이거 버그 야? 아니면 새로운 기능과 스크립트를 변경해야합니까? 어떤 아이디어?

편집 : 그것은 대화 형 모드, 즉, 파이썬 -i ... 아래에 줄거리를 열어,하지만 그것없이 작동하는 데 사용되는 및 plt.ion () 스크립트에서 시도하고 정상 모드에서 있지만 행운을 실행할 .

해결법

  1. ==============================

    1.나는이 같은 문제가 있었고 pyplot 객체 대신 Figure 객체에 show ()를 호출하여 발생했습니다.

    나는이 같은 문제가 있었고 pyplot 객체 대신 Figure 객체에 show ()를 호출하여 발생했습니다.

    잘못된 코드입니다. 잠시 동안 그래프가 화면에서 깜박이도록합니다 :

        import matplotlib.pyplot as plt
    
        x = [1,2,3]
        y = [5,6,7]
    
        fig = plt.figure()
        plt.plot(x, y)
    
        fig.show()
    

    그래프가 사라질 때까지 그래프를 보여주기 위해 마지막 줄은 다음과 같아야합니다 :

        plt.show()
    
  2. ==============================

    2.show (block = True)를 사용하면 문제가 해결 될 것이라고 생각합니다.

    show (block = True)를 사용하면 문제가 해결 될 것이라고 생각합니다.

  3. ==============================

    3.반대의 문제가 있었는데 matplotlib가 추적 할 수없는 여러 가지 요소를 기반으로 대화식 모드 또는 비 인터랙티브 모드로 작동하는 것으로 보입니다 (IDLE의 한 가지 방법, 시스템 콘솔의 다른 방법, 정상적인 스파이더 콘솔의 한 가지 방법, 다른 방법 전용 한 ...)

    반대의 문제가 있었는데 matplotlib가 추적 할 수없는 여러 가지 요소를 기반으로 대화식 모드 또는 비 인터랙티브 모드로 작동하는 것으로 보입니다 (IDLE의 한 가지 방법, 시스템 콘솔의 다른 방법, 정상적인 스파이더 콘솔의 한 가지 방법, 다른 방법 전용 한 ...)

    이것은 나를 위해 일했다 :

    import matplotlib
    matplotlib.interactive(False)
    

    (사실, 대화 형 모드가 필요했지만, 역으로도 도움이 될 것입니다.) ion ()과 ioff ()는 똑같이해야하지만 위의 내용은 pyplot이나 pylab뿐만 아니라 matplotlib의 레벨에 있습니다. 이것은 (나중에) pyplot을 별도로 가져 왔지만 matplotlib를 결코 다시 호출하지 않아도된다. plt.ion ()은 pyplot에만 영향을 미친다고 생각합니다. pyplot을 사용할 때 matplotlib의 다른 구성 요소가 관여하지 않을 수도 있습니다.

    이 방법은 Windows 7에서 matplotlib 0.99와 함께 Python 2.65를 사용하고 matplotlib 1.3.1을 사용하여 Python 2.75를 사용하여 두 시스템 (64 비트, 둘 다)의 모든 사용 가능한 파이썬 콘솔과 IDE에서 사용할 수 있습니다. 그러나 Linux (SuSe 11.3, 64 비트)에서는 작동하지 않으므로 플랫폼 의존성이 분명히 존재합니다.

  4. ==============================

    4.Figure 객체에서 show ()를 호출 할 때 tkagg 백엔드와 함께 matplotlib.show () 비헤이비어를 복제하려면 :

    Figure 객체에서 show ()를 호출 할 때 tkagg 백엔드와 함께 matplotlib.show () 비헤이비어를 복제하려면 :

    import Tkinter as Tk
    import matplotlib.pyplot as plt
    fig = plt.figure()
    ... your plot commands...
    fig.show()
    Tk.mainloop()
    
  5. from https://stackoverflow.com/questions/9280171/matplotlib-python-show-returns-immediately by cc-by-sa and MIT license