こんにちは!Takuya.B(@TB_IQ)です。
久々にgnuplotについての記事です。以前、gnuplotのeps出力について記事を書きました。
eps出力に関わらず、何回も画像ファイルを生成するのは正直面倒くさいです。私はそんな悩みを解消するためにC言語でgnuplotを操作しています。
えっ?そんなことできるのかって?
できます!説明します!
スポンサーリンク
C言語でgnuplotを動かす方法
まず、C言語でgnuplotを動かすために次の3つの関数を使います。
- popen…gnuplotを起動する
- fprintf…gnuplotにコマンドを渡す
- pclose…gnuplotを終了する
これらは外部ファイルの読み込み/書き出しで使用したfopen, fprintf, fcloseに似ています。
実際に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ファイルを複数回出力しなければならない状況でも、簡単に対処することができます!
是非、参考にしてみてください!