c++でmatplotlibを使う
pythonには非常に強力なグラフ描画ツール,matplotlibというものがあります.
 c++にも何か良いグラフ描画ツールがないかと探してみたところ...
 なんと,matplotlib-cppなるものを発見してしまいました.
 世の中には便利なものを作ってくれる人がいるもんですね!
 ありがたや,ありがたや.
matplotlib-cpp
matplotlib-cppはこちらのgithubにあがっているので、適当な場所にcloneしてきましょう。
このmatplotlib-cppはヘッダファイルをインクルードするだけで使えるようになるので非常に簡単です。
 このヘッダファイルはpythonとmatplotlibに依存していますので、インクルードディレクトリとライブラリパスを指定するのをお忘れなく。
python-matplotlibのインストール
ubuntuには元からpython2.7が入っていますので大丈夫ですが、matplotlibは元から入っているわけではないので、必要な方は以下のコマンドでmatplotlibを入れましょう。
$ sudo apt-get install python-matplotlibサンプルコード
説明するよりコードを見たほうが早いと思うので、以下にサンプルコードを示しておきます。
#include <matplotlib-cpp/matplotlibcpp.h>
namespace plt = matplotlibcpp;
int main(){
    int n = 1000;
    std::vector<double> x(n), y(n);
    for(int i=0; i<n; ++i) {
        x[i] = 2 * M_PI * i / n;
        y[i] = sin(x[i]);
    }
    plt::plot(x, y);
    plt::show();
}0~2πの範囲を1000分割にして、y=sin(x)のグラフを表示するサンプルプログラムになります。
 xとyのvectorを作ってあげてそこにxとyの点を次々に追加していきます。
 後はplot(x,y)とするだけで描画されます。
 このように,ほとんどpythonのmatplotlibと同じように使うことができるので、とても簡単です.
コンパイル
<makefile>
コンパイルするときには、-Iオプションでヘッダファイル(matplotlibcpp.h)の場所を明示してあげる必要があります。
 また、pythonに依存していますので、そちらのインクルードパスとライブラリパスを明示してあげるのもお忘れなく。
$ g++ sample.cpp -I/usr/include/python2.7 -lpython2.7 -I/hoge/piyo/matplotlib-cppmatplotlib-cppを/usr/includeに置いて、以下のように使うのがスマートでしょうか。
 (gccはデフォルトで/usr/includeディレクトリのヘッダファイルを探しに行ってくれるので)
#include <matplotlib-cpp/matplotlibcpp.h>
$ g++ sample.cpp -I/usr/include/python2.7 -lpython2.7<cmake>
cmakeの方はこちら
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
target_link_libraries(hoge ${PYTHON_LIBRARIES})実行結果

上記サンプルコードを実行すると、このような結果なります。
 これでc++でもpythonのmatplotlibと同じような感覚でグラフを手軽に描画できますね!