Tagebuch von Spargel

最近zennに移行しましたhttps://zenn.dev/spargel

C/C++でグラフ描画(Windows10編)

やりたいこと

C++のコードから直接グラフを描画をしたいことが多々ある.

macでは以下の方法があったが,windowsでやろうとすると数時間嵌ってしまった...(貴重な休日が溶けた...)

myenigma.hatenablog.com

windowsでもできるようになったので,その方法を記載する.

環境

  • windows10 education

やったこと

WSLでubuntuを導入し,その中で実行する環境を整えた. この際,ubuntuCUI環境のみのため,グラフ描画のためにはXserverの導入が必要.

具体的な方法

WSLでubuntuの導入

下の記事にしたがい,ubuntuを導入.

qiita.com

python,gccなどのインストール

$ sudo apt install python2.7
$ pip install numpy
$ pip install matplotlib
$ sudo apt install g++ 
$ sudo apt install git

Xserverの導入

グラフ表示のためにXserverをwindowsにインストールする.

nakomii.hatenablog.com

また,WSL上でtkinterをインストールする

$ sudo apt-get install tkinter

matplotlib-cppの導入

基本は一番上に貼り付けたブログに従い行う. まずは以下のコマンドで任意のフォルダにgitをクローン

git clone https://github.com/AtsushiSakai/matplotlib-cpp-starter.git

すると,"matplotlib-cpp-starter"というフォルダが作成されるので,その中にあるmatplotlibcpp.hを,実行プログラムから見える位置にコピー.

includeでパスを通してもよいし,実行プログラムと同じディレクトリにおいても良い.

#include"matplotlibcpp.h"

とすることで使えるようになる. コンパイルc++17の場合,

$ g++ main.cpp -lpython2.7 -std=c++17

以上で実行環境は整う. 実際のコード記述には,VScodeのRemort WSLを使用すると楽になる.

qiita.com

備考

上記でインストールしたubuntuからwindws上のフォルダへアクセスすることは可能. ubuntu(WSL)で

$cd \mnt\c

とすると,windows

c:\

にアクセスできる. フォルダはwindows側に作成して,ubuntuからアクセスするのが便利.フォルダ移動のalias作成しとくとよい.

最後に

最初はwindowsで完結させようとして大変なことになっていた. c++でグラフ描画もできるようになったため,作業が捗る...かも