#9

超便利!C言語でgnuplotを動かす方法をご紹介!

こんにちは!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ファイルを複数回出力しなければならない状況でも、簡単に対処することができます!

是非、参考にしてみてください!