はじめに
WSL+Ubuntu18.04でpython3のmatplotlibのグラフが表示されなかったので、表示できるようにするまでにしたことをまとめます。
環境
- Windows 10 Home
- WSL+Ubuntu18.04
- Python 3.6.9 + matplotlib (3.1.3)
- VcXsrv
VcXsrvの導入
デフォルトではUbuntuにはGUI機能がないのでその機能を提供する X Server を導入します。 今回はフリーの X Server である VcXsrv を使用します。
インストール
こちらからインストーラーをダウンロードします。
https://sourceforge.net/projects/vcxsrv/
インストーラーを起動したら設定はすべてデフォルトのまま「次へ」を選択しインストールを完了します。
起動
デスクトップ上のショートカットまたはスタートメニューから XLaunch を起動します。すべて設定はデフォルトのまま項目を進め起動を完了します。
起動できていると画面下のタスクトレイに表示されます。
WSL側の準備
Ubuntuを立ち上げ以下のコマンドを実行しvimでファイルを開きます。
sudo vim ~/.bashrc
ファイルを開いたら末尾に次の設定を追加して保存します。
export DISPLAY=localhost:0.0
vimの操作が分からない場合は以下のコマンドでも同様の設定が可能です。
echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc
設定が完了したらUbuntuを再起動するか以下のコマンドを実行し設定を読み込み直します。
source ~/.bashrc
設定できているかの確認は以下のようにできます。
echo $DISPLAY
# => localhost:0.0
動作確認
ここまでで導入は完了したので実際にコードを実行してみます。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.random.randn(100)
plt.plot(x, y)
plt.title('Random-Walk')
plt.show()
を実行するとウィンドウが表示されるはずです。
お疲れさまでした。