绘制多个数据文件

第一种方法 - 串联连接

绘制多个数据文件的最简单方法是在 gnuplot 的 plot 命令中插入 for 循环。假设你有后续命名的 N 文件,

file_1.dat
file_2.dat
file_3.dat
...
file_N.dat

执行命令

plot for[i = 1:N] "file_".i.".dat" 

将在同一图表中绘制 file_1.datfile_N.dat 之间的所有文件。

三个数据文件的示例

数据集表

X-轴 Y-ax file_1.dat Y 轴文件_2.dat Y 轴文件_3.dat
1 1 1 1
2 2 4 2
3 3 9 6
4 4 16 24
5 5 25 120

命令

set terminal postscript color noenhanced ##setting the term
set output "multiple_files.ps"

set key center ##legend placement

plot [1:5][1:120] \
    for [i = 1:3] "file_".i.".dat" \
    pointsize 1.3 linecolor i+4 \
    title "file\_".i.".dat" \
    with linespoint

循环以 for [i = 1:3] "file_".i.".dat" 开始并执行 plot 命令直到它到达 i = 3.i. 是连接数。

title "file\_".i.".dat" 已经用\编写,以使文件名中的 _ 符号显示为下划线而不是下标,而 noenhanced 说明符是获得此结果的基础。

最终结果如下所示

StackOverflow 文档

第二种方法 - 使用 sprintf 函数

另一个可能的路径是使用 sprintf 函数,该函数与 C 语言 sprintf 基本相同。正确的语法,从 gnuplot 的 5.1 文档

sprintf("format", x, y, ...)

一个简短的例子将澄清每一个疑问。

file_name(n) = sprintf("file_%d.dat", n)
plot for[i = 1:N] file_name(i) title file_name(i)