这个问题与gnuplot内部的循环结构有关吗?以及DarioP的答案。
gnuplot 4.6 引入了 do 命令。我如何使用它来循环例如文件和颜色的数组?什么是正确的语法?
colors = "red green #0000FF"
files = "file1 file2 file3"
do for [i=1:3] {
plot files(i).".dat" lc colors(i)
}
如果要将所有文件都放在一个图中,则需要使用plot for[...
(从 4.4 版开始支持)。使用(仅从版本 4.6 开始支持)循环多个plot
命令do for
仅在multiplot
模式下有效。
以下两种解决方案都将所有数据绘制在一个图中,但在迭代中有所不同。
第一个解决方案用于word
在绘图时直接从字符串中提取单词。
colors = "red green #0000FF"
files = "file1 file2 file3"
plot for [i=1:words(files)] word(files, i).'.dat' lc rgb word(colors, i)
第二种解决方案更改了linetype
然后直接迭代单词列表而不是使用索引。
colors = "red green #0000FF"
files = "file1 file2 file3"
set for [i=1:words(colors)] linetype i lc rgb word(colors, i)
plot for [file in files] file.'.dat'