こんにちは!Takuya.B(@TB_IQ)です。
久々にgnuplotについての記事です。以前、gnuplotのeps出力について記事を書きました。
eps出力に関わらず、何回も画像ファイルを生成するのは正直面倒くさいです。私はそんな悩みを解消するためにC言語でgnuplotを操作しています。
えっ?そんなことできるのかって?
できます!説明します!
スポンサーリンク
C言語でgnuplotを動かす方法
まず、C言語でgnuplotを動かすために次の3つの関数を使います。
popen
…gnuplotを起動するfprintf
…gnuplotにコマンドを渡すpclose
…gnuplotを終了する
これらは外部ファイルの読み込み/書き出しで使用したfopen
, fprintf
, fclose
に似ています。
【関連】fopenとかの使い方はこちら!
実際にsin関数を描画してみよう
それでは、実際にgnuplotを動かすためのCプログラムを作ってみましょう。まずは下のサンプルコードをコピペしてください。
サンプルコード
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *gp;
gp = popen("gnuplot -persist", "w");
fprintf(gp, "plot sin(x)\n");
pclose(gp);
return 0;
}
このプログラムを実行すると以下のように表示されます。
無事、Cプログラムからgnuplotを操作することができました!
解説
8行目
gp = popen("gnuplot -persist", "w");
外部ファイルの入出力と同じ要領です。このときオプションの -persist
を忘れないようにしましょう。
10行目
fprintf(gp, "plot sin(x)\n");
gnuplotで入力するコマンド類はfprintf
関数を用いて表します。
12行目
pclose(gp);
最後にpclose
して終わり。
スポンサーリンク
まとめ
今日はgnuplotを動かすCプログラムの作り方の説明をしました。
この方法を用いることで、epsファイルを複数回出力しなければならない状況でも、簡単に対処することができます!
是非、参考にしてみてください!