LoginSignup
46
33

More than 3 years have passed since last update.

WSLでmatplotlibやgnuplotでプロットができない

Last updated at Posted at 2018-07-25

WSLでGUIのソフトは使えないものか

WSLをダウンロードして, Anacondaをダウンロードして,
matplotlibで意気揚々とサインカーブを描こうと思ったら...

無事にエラーを吐かれました.

どうしてプロットできないのか

この症状は, WSL自体が出力するディスプレイを認識できないことが原因です.
そこで今回はVcXsrvというソフトをダウンロードして,
出力先のディスプレイを作成しちゃいましょう.

追記

先日、WSL2というものが新しく発表になりました。
しかしながらHyper-Vを用いている性質上か、IPアドレスの設定が難しい状況にあります。
使いやすい方法が確立されるまではWSL1を用いていたほうが無難かと思われます。
一応WSL2についての記事を作成いたしましたので、参考にしていただけたらと思います。

WSL2におけるVcXsrvの設定

VcXsrvのインストール

つぎのサイトからVcXsrvをインストールしてください
sourceforge.net

特に設定はありませんので, ポチポチとしていれば大丈夫だと思います.

VcXsrvの自動起動設定

  1. xlaunch.exeという実行ファイルがあると思いますので, 起動します.
  2. multiple window を選んで, 次へを選択します.
  3. start no client を選んで, 次へを選択します.
  4. clipboard を使用したければ, clipboardにチェックを入れて, 次へを選択します.
  5. Save configuration を押して, どこかアクセスしやすい場所(デスクトップとか)に保存してください.
  6. 完了を押してxlaunchを終了します.
  7. 続いて, Windowsキー + rを押して, shell:startupと入力して検索します.
  8. スタートアップというフォルダが開きますので, ここに先ほどxlaunchを用いて作成したファイルを移動してしまってください.

これで, 自動的にVcXsrvがパソコンの起動時に立ち上がるようになりました.

WSL上のディスプレイの設定

最後にVcXsrvの存在をWSLに教えてあげましょう.

  1. WSLを開きます.
  2. vim や nano などで~/.bashrcを開きます.
  3. 開いた.bashrcの最後の行に, 以下のコマンドを追記して保存してください.
.bashrc
   export DISPLAY=:0.0

最後にWSLを再起動すると, 先ほど編集した.bashrcが読み込まれて, 設定が反映されます.

最後に

以上でmatplotlibもgnuplotも無事に使えるようになったと思います.
またほかのGUIのプログラムについても使えるようになったかと思いますので, ぜひ楽しんでみてください.

おまけ

以下のサイトを参考にさせて頂きました.
とても素晴らしいWSLをご紹介されているので, 是非ご覧ください.
お前らのWSLはそれじゃダメだ

46
33
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
33