在一个gnuplot窗口中生成多个图

时间:2015-03-28 09:10:07

标签: c gnuplot

我有很多包含数据的文件,我想在一个gnuplot窗口中绘制所有数据。我正在使用C.我目前的代码是

gnuplotPipe = popen ("gnuplot -persistent", "w");
//loop starts for each file
system("gnuplot -p -e \"plot 'file_variable'""); // skipping some steps to generate variable file name
//end loop
fclose(gnuplotPipe);

它在各个窗口中生成图形。如何将所有这些组合成一个?

文件格式类似于

2 0.000003
2 0.000002
2 0.000002
file_2.txt

中的

3 0.000001
3 0.000000
3 0.000001
file_3.txt

中的

.
.
.
file_n.txt n中的

介于3和98之间

99 0.004800
99 0.004752
99 0.004716
file_99.txt中的

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

通常plot命令可以同时将多个文件名作为参数,并将它们的数据绘制在一个图形中。

plot 'file_1', 'file_2', .... 'file_n'

所以你可以构造一个包含所有文件名的sting,然后在system()函数中传递它。

会是这样的。

char *arg = "gnuplot -p -e \"plot";
//Start a loop
//Generate your variable file name
strcat(arg, generated_filename);
//End loop
gnuplotPipe = popen ("gnuplot -persistent", "w");
system(arg);
fclose(gnuplotPipe);

只需确保生成的文件名组成一个字符串,如下所示 - " '文件名'"

(空白后跟单引号,文件名,单引号,最后是逗号)

您可以在此site的最后一个示例中了解有关在单个图表中绘制多个文件的详细信息。如果需要,您也可以格式化图表,如示例所示。