WSL+Ubuntu18.04上でmatplotlibのグラフを表示させる(メモ)


はじめに

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()

を実行するとウィンドウが表示されるはずです。

お疲れさまでした。

参考