gnuplot与muliple列使用循环

时间:2016-05-11 02:01:06

标签: shell gnuplot glob

我有多个文件(每个有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;

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

如果j可以> 9,你应该设置一个功能

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

获取正确的文件名。

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

print fname(2,3)
    name023

print fname(13,3)
    name133

print fname(113,3)
    name1133

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