計算データを元にある程度複雑なグラフを描くには、 データファイルを作成して、それを plot するのが良いでしょうが (後述)、 plot '-' として、 データを標準入力から読むように指定することも出来ます。
testcallgnuplot.c |
/* * testcallgnuplot.c */ #include <stdio.h> #include <math.h> int main(void) { int i, n; double pi, x, dx; FILE *gp; char buf[BUFSIZ]; pi = 4.0 * atan(1.0); gp = popen("gnuplot", "w"); fprintf(gp, "plot '-' with linespoints\n"); n = 100; dx = 2 * pi / n; for (i = 0; i <= n; i++) { x = i * dx; fprintf(gp, "%f %f\n", x, sin(x)); } /* 行頭が 'e' だと標準入力からの読み込みを終了 */ fprintf(gp, "e\n"); fflush(gp); /* 行入力を待つ --- Enterを打つまで待つ */ fgets(buf, sizeof(buf), stdin); pclose(gp); return 0; } |