28

这个问题与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)
}
4

1 回答 1

45

如果要将所有文件都放在一个图中,则需要使用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'
于 2013-09-03T12:38:57.900 回答