teruノート

ROSでロボットとか。Ubuntuで困ったこととか。

gnuplotの導入

C++でディジタル制御のプログラムを書こうとしていて、結果をグラフで表示したいなと調べたところ、gnuplotが便利そうだとわかりました。

インストールします。

sudo apt-get install gnuplot-x11

最後のx11を付け忘れてもインストールしてしまったのですが、ubuntuではグラフウインドウが出ませんでした。ここを参考にしました。

qiita.com

ソースコードからはこんな感じにアクセスします。以下は一例です。

FILE *gp;
gp = popen("gnuplot -persist","w");
fprintf(gp, "plot '-' with lines linetype 1 title \"model\"\n");

データの組を渡すにはこんな感じです。

fprintf(gp, "%d\t%f\n", i, out);

データの最後に'e'を出力し、closeします。

fprintf(gp, "e\n");
pclose(gp);

実行すればグラフウインドウが出ます。

f:id:ub2_memo:20160507184519p:plain


ただ、グラフウインドウを閉じようとすると応答なしになってしまいます。

これをpopenしたあとに書くと、ちょっとグラフスタイルが変わりますが閉じられるようになりました。

fprintf(gp, "set terminal x11\n");

原因など詳しくはわからないですが。