【问题标题】:Generating mutilple plots in one gnuplot window在一个 gnuplot 窗口中生成多个绘图
【发布时间】:2015-03-28 09:10:07
【问题描述】:

我有很多包含数据的文件,我想在一个 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

任何帮助将不胜感激。

【问题讨论】:

  • 你忘了包括你的问题。
  • 我虽然从标题中很明显,但感谢提及,我也在添加当前代码。

标签: c gnuplot


【解决方案1】:

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

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

因此您可以构造一个包含所有文件名的字符串,然后将其传递给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);

只需确保生成的文件名组成这样的字符串 - " 'filename',"

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

您可以在site 的最后一个示例中了解有关在单个图表中绘制多个文件的更多信息。如果需要,您还可以按照示例中所示设置图表格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多