2017-04-13 2 views
8

의 matplotlib 그림을 표시합니다. Windows 용 우분투 (Linux 용 Windows 하위 시스템) 사람들은 Agg 백엔드를 사용하여 이미지를 저장하고 플롯을 표시해야한다고 제안합니다.우분투 (Windows 하위 시스템)에

import matplotlib 
matplotlib.use('Agg') # no UI backend 

import matplotlib.pyplot as plt 
import numpy as np 

t = np.arange(0.0, 2.0, 0.01) 
s = 1 + np.sin(2*np.pi*t) 
plt.plot(t, s) 
plt.title('About as simple as it gets, folks') 

#plt.show() 
plt.savefig("matplotlib.png") #savefig, don't show 

우리는 어떻게 plt.show()가 실제로 우리에게 이미지를 보여줄 수 있을까요? 현재 나의 옵션은 plot.show()를 오버라이드하여 윈도우에/mnt/c/Users/james/plots/밑에 plot-148123456.png 파일을 저장하고 탐색기 창을 열어 이미지를 볼 수있게하는 것입니다.

나는 그 폴더를 호스팅하고 브라우저를 사용할 수 있다고 가정합니다.

내 목표는 이미지를 어딘가에 ftp로 코드를 변경하지 않고 위의 코드와 같은 간단한 예제를 실행할 수 있다는 것입니다. 단지 플롯을 창에 표시하고자합니다.

누구나 알맞은 방법을 찾았습니까?

+0

[이 질문에] (http://stackoverflow.com/questions/40566837/no-plot-window-in-mat-plotlib-in-linux-shell-windows-10) 대답은 가능한 것이라고 말합니다. 그 목적을 위해 xming을 사용하십시오. 당신은 또한 슈퍼 유저 (matplotlib에 너무 많은 초점을 두지 않음)에서 비슷한 질문을하는 것을 고려할 수도 있습니다. – ImportanceOfBeingErnest

답변

8

일부 단계는 필요하지 않지만 다음과 같이 작동합니다. 나는 구글이 "xming"(X11 서버) 및 (소스 포지에서) 다운로드/설치/

  • sudo apt-get install x11-apps
  • export DISPLAY=localhost:0.0를 실행 (~/.bashrc에 추가
    1. 을 영구적으로하는

      설치 아나콘다 파이썬 3.6, 윈도우에 우분투를)
    2. sudo apt-get install gnome-calculator (GTK를 얻을 수 있습니다)
    3. 편집 matplotlibrc 및 백엔드을 변경 백엔드 : TkAgg
    matplotlibrc에 대한3210

    GTKAgg이 작동하지 않았다 /home/james/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

    주에, 그래서 4 단계는 물론, 무의미하지 될 수 있습니다. gnome-calulator가 작동하여 GTK가 작동하는 것처럼 보이지만 pygtk가 필요하지만 아직 pip install pygtk이 작동하지 않는다고 말합니다.

    import matplotlib.pyplot as plt 
    import numpy as np 
    
    t = np.arange(0.0, 2.0, 0.01) 
    s = 1 + np.sin(2*np.pi*t) 
    plt.plot(t, s) 
    
    plt.title('About as simple as it gets, folks') 
    plt.show() 
    

    ```

    결과 : enter image description here

    나는 느낌이이 낫다 그대로

    은 어쨌든, 모든 후, WSL에 우분투에서 실행이 코드는 일 Jupyter 노트북이나 다른 것을 통해 할 수 있지만 Linux 용 서브 시스템의 Windows 용 Ubuntu에서 기본 명령 행 파이썬 matplotlib 기능을 사용하는 것이 좋습니다.

    편집 : 오늘 나는 Qt5를 백 엔드로 설치 한 다음 명령을 실행했으며 Qt5Agg를 백 엔드 (TkAgg 대)로 사용하여 올바르게 작동합니다.당신이 Qt5

    sudo apt-get update && sudo apt-get install qtbase5-dev

    또한

    을 필요로 WSL에 다른 어떤 것을 실행하는 경우이 도움이 될 수있다, 당신의 matplotlibrc을 찾아 프롬프트 명령 :

    python import matplotlib print(matplotlib.matplotlib_fname()) quit()

  • +2

    윈도우즈에서 xming을 설치하고'sudo apt-get install python-tk'를 우분투 측에 설치해야만합니다. 그런 다음 DISPLAY를 설정 한 후에는 좋았습니다. – AlistairH

    +0

    @AlistairH DISPLAY를 어떻게 설정 했습니까? – ScheissSchiesser

    +0

    위의 대답에서와 같이'DISPLAY = localhost : 0.0'. – AlistairH

    1

    가하기 matplotlib를 얻으려면을 윈도우에 우분투 강타에 GTKAgg 작업을, 나는 :

    1. 설치 위에서 언급 한 바와 같이 Windows에서 VcXsrv
    2. 설정 DISPLAY (그러나 일이 바로 Xming과 같은 작동합니다)
    3. sudo apt install python-matplotlib
    4. 다음 sudo pip uninstall matplotlib
    5. 실행 [export DISPLAY=localhost:0.0 (영구적으로 ~/.bashrc에 추가)] 업데이트 된 matplotlibrc을 backend : agg이 아닌 backend : GTKAgg으로 변경하십시오.
    6. 또한 sudo apt-get install python-gtk2-dev으로 실행했는데,이 작업이 필요하지 않을 수도 있습니다.

    Uninstalling the pip-installed matplotlib and reinstalling it via apt pip에는 GTK를 실행하는 데 필요한 C 확장이 없지만 APT 버전에서는 필요합니다.

    +1

    맨 위로 파이썬 파일 : import matplotlib; matplotlib.use ('GTKAgg'); VcXsrc를 시작하는 것을 잊지 마십시오. 6 단계를 건너 뜁니다. 감사합니다! – Jason

    +0

    @ Jason :'matplotlib use' 속성을 명시 적으로 설정하는 것이 아니라'GTKAgg'가 기본적으로 사용되도록 제'matplotlibrc' (5 단계)를 업데이트했습니다. 그러나 귀하의 변형이 마음에 듭니다. 또한 VcXsvr이 실행 중인지 확인하는 것이 좋습니다. 다행스럽게 도울 수있어! – marisano

    +0

    'mobaXtrem'는'VcXsrv'를 설치하는 대신에 사용할 수있는 xserver가 내장되어 있습니다. https://nickjanetakis.com/blog/using-wsl-and-mobaxterm-to-create-a-linux-dev-environment-on-windows – oak

    관련 문제