问题描述
此问题是关系到这个问题:,答案由DarioP(http://stackoverflow.com/users/2140449/dariop).
gnuplot的4.6引入了做命令。我怎么可以用它来遍历的例如文件和颜色数组?什么是正确的语法?
颜色=红,绿,#0000FF
文件=文件1文件2文件3为做[I = 1:3] {
打印文件(我)。DATLC颜色(I)
}
如果你想在一个情节中的所有文件,你需要使用[... $ C $ 剧情C>(自4.4版本支持)。与
循环在几个
(仅支持自4.6版本),只能在剧情
命令做工作的multiplot
模式。
以下两种溶液都积在一个图中的所有数据,而是在迭代不同位
第一个解决方案使用字
打印时直接从字符串中提取一个字。
颜色=红,绿,#0000FF
文件=文件1文件2文件3
积[I = 1:字(文件)。'逸'字(文件,I)LC RGB字(颜色,I)
第二个解决方案直接在单词列表改变了线型
,然后遍历,而不是使用索引的。
颜色=红,绿,#0000FF
文件=文件1文件2文件3
设置为[I = 1:字(颜色)线型我LC RGB字(颜色,I)
积[中文件的文件]文件。'逸'
This question is related to the question "Loop structure inside gnuplot?" and the answer by DarioP (http://stackoverflow.com/users/2140449/dariop).
gnuplot 4.6 introduced the do command. How can I use this to loop over an array of for example files and colors? What is the correct syntax?
colors = "red green #0000FF"
files = "file1 file2 file3"
do for [i=1:3] {
plot files(i).".dat" lc colors(i)
}
If you want to have all files in a single plot, you need to use plot for[...
(supported since version 4.4). Looping over several plot
commands with do for
(supported only since version 4.6) works only in multiplot
mode.
The following two solutions both plot all data in one graph, but differ a bit in the iterations.
The first solution uses word
to extract a word from a string directly when plotting.
colors = "red green #0000FF"
files = "file1 file2 file3"
plot for [i=1:words(files)] word(files, i).'.dat' lc rgb word(colors, i)
The second solution changes the linetype
and then iterates directly over the word list instead of using an index.
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'
这篇关于循环遍历数组的gnuplot的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!