web-dev-qa-db-ja.com

Ubuntuでmatplotlibプロットを表示(LinuxのWindowsサブシステム)

だから、Windows用のubuntu(Linux用のWindowsサブシステム)では、プロットを表示するのではなく、Aggバックエンドを使用して画像を保存する必要があることを人々が示唆しているようです。

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()が実際に画像を表示する場所にどのように到達できますか?私の現在のオプションは、Windowsで/ mnt/c/Users/james/plots /の下にあるplot-148123456.pngをsavefigに保存し、Explorerウィンドウを開いて画像を表示するようにplot.show()をオーバーライドすることです。

そのフォルダーをホストし、ブラウザーを使用できると思います。

私の目標は、コードを変更せずに上記のコードのような単純な例を実行できるようにすることです。イメージをどこかにftpするなどです。ウィンドウにプロットを表示したいだけです。

誰かがそれを行うまともな方法を見つけましたか?

31
AwokeKnowing

わかりましたので、次のように動作させました。 WindowsにUbuntuがあり、anaconda python 3.6がインストールされています。

  1. Sourceforgeから Xming (X11 for Windows)または VcXsrv をダウンロードしてインストールします(以下の編集を参照)
  2. Sudo apt-get update
  3. Sudo apt-get install python3.6-tk(使用しているpythonバージョンに異なるpython*-tk depndingをインストールする必要がある場合があります)
  4. pip install matplotlib(matplotlibの場合。しかし、他の多くのものも機能するようになりました)
  5. export DISPLAY=localhost:0.0~/.bashrcに追加して永続的にします)

とにかく、結局のところ、wslのubuntuで実行されているこのコードはそのまま機能しました。

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

これはJupyterノートブックなどを使用して行う方が良いかもしれませんが、Linuxのサブシステム上のWindowsのUbuntuで基本的なコマンドラインpython matplotlib機能を使用すると便利です。

2019-09-04の編集:今日、いくつかのライブラリをアップグレードした後、「スクリーンリソースを取得できません」という問題が発生していました。そこで、VcXsrvをインストールし、Xmingの代わりにそれを使用しました。 https://sourceforge.net/projects/vcxsrv/ からインストールし、xlaunch.exeを実行して、複数のウィンドウを選択し、次の次の次のOKをクリックします。その後、すべてが機能しました。

50
AwokeKnowing

MatplotlibをWindows上のUbuntuでのBashでGTKAggと連携させるには、次のようにします。

  1. windowsにVcXsrvをインストールしました(ただし、Xmingでも同じように動作するはずです)
  2. 上記のようにDISPLAYを設定します[export DISPLAY=localhost:0.0(永続化するには〜/ .bashrcに追加)]
  3. 実行されたSudo pip uninstall matplotlib
  4. その後にSudo apt install python-matplotlibが続きます
  5. backend : GTKAggbackend : aggではなく)を読み取るようにmatplotlibrcを更新
  6. Sudo apt-get install python-gtk2-devも実行しましたが、これは必要ないかもしれません。

pipにインストールされたmatplotlibをアンインストールし、aptを使用して再インストールする は、pipにはGTKの実行に必要なC拡張が含まれていないが、aptバージョンには含まれているため、必要なようです。

5
marisano

次の方法でJupyterをWindowsサブシステムfor Linux(WSL)にインストールするのが最良のアプローチであることがわかりました。

Sudo apt update && upgrade
Sudo apt install python3 python3-pip ipython3

これでmatplotlibをインストールできます

pip3 install matplotlib

Jupyterノートブック

pip3 install jupyter

さらに情報が必要な場合は、このリンクを確認してください Linux(WSL)のWindowsサブシステムでのPythonセットアップ

0