使用循环的多列 gnuplot

gnuplot with muliple columns using loop

我有一些文件(每个文件有 10 列),顺序如下:

file_001.txt, file_002.txt, file_003_txt,
file_021.txt, file_023.txt, file_023.txt,
file_041.txt, file_042.txt, file_043.txt,
file_061.txt, file_062.txt, file_063.txt,
file_081.txt, file_082.txt, file_083.txt,

我想用不同的线条绘制每个文件。例如使用 1:2,使用 1:3,使用 1:5,使用 1:8。我无法循环调用不同的列。我的以下脚本不适用于 k 字段

 plot for [k=2, 3, 5, 8] for [j=0:8:2] for [i=1:3] 'file_0'.j.i.'.txt' u 1:k;

如果您有列表而不是范围,请使用 for [k in "2 3 5 8"]

如果j可以>9,你应该设置一个函数

fname(j,i) = sprintf("name%02.f%.f",j,i)

获取正确的文件名。

格式字符串“%02.f”表示浮点数(f),逗号(.)后无数字,最少两位(2),空space用零填充。

print fname(2,3)
    name023

print fname(13,3)
    name133

print fname(113,3)
    name1133

这些是 libc 格式字符串,它们没有记录在 gnuplot 文档中,但网络上有很多来源。