c++でmatplotlibを使う

pythonには非常に強力なグラフ描画ツール,matplotlibというものがあります.
c++にも何か良いグラフ描画ツールがないかと探してみたところ...
なんと,matplotlib-cppなるものを発見してしまいました.
世の中には便利なものを作ってくれる人がいるもんですね!
ありがたや,ありがたや.

 

 

matplotlib-cpp

matplotlib-cppはこちらのgithubにあがっているので,適当な場所にcloneしてきましょう.

lava/matplotlib-cpp

このmatplotlib-cppはヘッダファイルをインクルードするだけで使えるようになるので非常に簡単です.
このヘッダファイルはpythonとmatplotlibに依存していますので,インクルードディレクトリとライブラリパスを指定するのをお忘れなく.

 

python-matplotlibのインストール

ubuntuには元からpython2.7が入っていますので大丈夫ですが,matplotlibは元から入っているわけではないので,必要な方は以下のコマンドでmatplotlibを入れましょう.

 

 

サンプルコード

説明するよりコードを見たほうが早いと思うので,以下にサンプルコードを示しておきます.

0~2πの範囲を1000分割にして,y=sin(x)のグラフを表示するサンプルプログラムになります.
xとyのvectorを作ってあげてそこにxとyの点を次々に追加していきます.
後はplot(x,y)とするだけで描画されます.
このように,ほとんどpythonのmatplotlibと同じように使うことができるので,とても簡単です.

 

 

コンパイル

<makefile>
コンパイルするときには,-Iオプションでヘッダファイル(matplotlibcpp.h)の場所を明示してあげる必要があります.
また,pythonに依存していますので,そちらのインクルードパスとライブラリパスを明示してあげるのもお忘れなく.

matplotlib-cppを/usr/includeに置いて,以下のように使うのがスマートでしょうか.
(gccはデフォルトで/usr/includeディレクトリのヘッダファイルを探しに行ってくれるので)

<cmake>
cmakeの方はこちら

 

 

実行結果

上記サンプルコードを実行すると,このような結果なります.