C のプログラムで popen() という関数を使うと、 gnuplot を呼び出して、データのやり取りが出来る。 E.3.2 の応用編と考えると良い。
プログラムを書くのは若干面倒だが、後々の手間が省略できて便利かもしれない。
コンパイル&実行 (これでグラフ表示まで出来る) |
% cc euler1-gnuplot.c % ./a.out |
要点の抜き出し |
FILE *gp; gp = popen("gnuplot --persist", "w"); fprintf(gp, "plot '-' with linespoints title \"dx/dt=x, x(0)=1\"\n"); fprintf(gp, "%f %f\n", t, x); for (...) { ... fprintf(gp, "%f %f\n", t, x); } fprintf(gp, "e\n"); fflush(gp); fprintf(gp, "quit\n"); fflush(gp); fclose(gp); |
なお、 「例: 複数のグラフを plot する」 も参考にせよ。