在运行时使用gnuplot从c绘图

时间:2016-12-10 14:43:42

标签: c gnuplot

我需要一些关于使用gnuplot来绘制c的帮助:

我的c源代码计算一些点并将它们的x / y值存储在数组中。它还通过这些点的最小二乘计算多项式拟合。现在我需要在c源代码的运行时期间将这些点以及拟合函数绘制到图形中。我没有关于gnuplot的经验,gnuplot的在线资源真的很难理解。

  • 主要的想法是包含一个包含gnuplot命令的库,只是将我的数组提供给这些函数?
  • 有人能举例说明这个吗?

如果有人能帮我解决这个非常基本的问题,我真的很感激。

1 个答案:

答案 0 :(得分:1)

如果确实需要使用C中的gnuplot,那么可以使用popen()启动gnuplot进程,并使用fprintf()向其发送命令,如下所示:

void plot_array(float *x, float *y, int n) {
  FILE *p = popen("gnuplot", "w");

  fprintf(p, "plot - with lines\n");

  for(int i = 0; i < n; i++)
    fprintf(p, "%f %f\n", x[i], y[i]);

  fprintf(p, "e\n");
  ...
  pclose(p);
}

但是,周围有许多绘图库为您提供了一种更加惯用的方法来绘制C中的数组。如果您可以使用C ++,那么gnuplot-iostream library基本上可以为您执行上述操作。< / p>