使用循环的多列 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 文档中,但网络上有很多来源。
我有一些文件(每个文件有 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 文档中,但网络上有很多来源。