如何使用单个管道从C程序打开两个(或更多)Gnuplot窗口?下面的代码似乎只为第二个循环创建的数据创建图表。第一个循环创建的数据窗口要么没有创建,要么不保持打开状态。我使用AquaTerm来显示Gnuplot图,不想打开这个的多个实例。我还喜欢使用'-',这样就不必创建Gnuplot要读取的文本文件。

int main()
{
    FILE *gnuplotPipe = popen("/usr/local/bin/gnuplot -persistent", "w");
    fprintf(gnuplotPipe, "plot '-' with lines\n");
    for (int i = 0; i < 11; i++) {
        fprintf(gnuplotPipe, "%d\t%d\n", i, i);
    }
    fprintf(gnuplotPipe, "e\n");

    fprintf(gnuplotPipe, "plot '-' with lines\n");
    for (int i = 10; i < 21; i++) {
        fprintf(gnuplotPipe, "%d\t%d\n", i, i);
    }
    fprintf(gnuplotPipe, "e\n");

    return 0;
}

我试过在plot命令中使用-persist,但还没有成功实现。
为了清楚起见,我希望能够比较不同窗口中的图形,而不是同一窗口中的图形。

最佳答案

您可以使用不同的窗口号使用不同的窗口:

set terminal aqua
plot x
set terminal aqua 1
plot x**2

默认值为0
这应该适用于所有交互式终端(wxtx11aquaqtwindows,)。

10-01 15:45