c - 在运行时使用 gnuplot 从 c 绘图

标签 c gnuplot

<分区>

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

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

  • 主要想法是包含一个具有 gnuplot 命令的库,并将我的数组提供给这些函数吗?
  • 谁能给我一个实现这一点的例子?

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

最佳答案

如果你确实需要在 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基本上可以为您完成上述工作。

关于c - 在运行时使用 gnuplot 从 c 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41076759/

相关文章:

c - pthread_mutex_init() 中的段错误

Gnuplot 在平行图中插入点

gnuplot - 同一句话中的两种字体

mapping - Gnuplot:为绝对值设置调色板颜色

C 计算句子中每个单词的元音

c - Valgrind memcheck 在商业库中发现大量条件跳转和无效读取

gnuplot:用图像绘图,如何添加轮廓

gnuplot - 使用对数缩放 z 轴删除 "empty space"中的 splot

c - (mysql_real_query) 在插入一些记录时中断

c - 数字后面的 'u'是什么意思?