使用c在gnuplot中创建多个行图



对于用C编写的终端应用程序,我需要(在终端中)绘制两个表作为线形图。要做到这一点,我使用(例如gnu tutorial)

FILE *gnuplot = popen("gnuplot", "w");
...
fprintf(gnuplot, "plot '-' u 1:2 t 'data1' w lp lt 0n");
for (int i = 0; i < lines; ++i) {
fprintf(gnuplot,"%f %f n", x[i] - x[0], y[i]);
}
fprintf(gnuplot, "n");
fprintf(gnuplot, "t 'data2' lt 2n");
for (int i = 0; i < lines; ++i) {
fprintf(gnuplot,"%f %f n", x[i] - x[0], 0.4*(x[i] - c0)/c1);
}
fprintf(gnuplot, "en");
fflush(gnuplot);

问题是数据被绘制为一个数据块,而不是两个不同的数据块。我希望使用

行来分隔
fprintf(gnuplot, "t 'data2' lt 2n");

似乎不是这样。这段代码有什么问题?

您可能希望执行以下操作。每个内联数据必须以e结束。在gnuplot控制台中,它将是:

plot '-' u 1:2 t 'data1' w lp lt 0, '' u 1:2 t 'data2' lt 2
1  0.1
2  0.2
3  0.3
4  0.4
e
11  0.5
12  0.6
13  0.7
14  0.8
e

检查help inline datahelp special-filenames。虽然,在我看来,这有点令人困惑,而且缺少合适的例子。也许你可以在别的地方找到。

相关内容

  • 没有找到相关文章

最新更新