在gnuplot中使用具有多列的文件的单个记录

在gnuplot中使用具有多列的文件的单个记录,gnuplot,Gnuplot,假设我将以下数据存储在文件“file”(令人兴奋!)中: 也是一个给定的函数f。 我想画几个图,一个接一个,每个图由(x,y)坐标中的一个点组成:a_2,f(a_2),然后b_2,f(b_2),等等 我想使用一个只使用gnuplot的解决方案(我想一定有一个,尽管我找不到!) 我正在寻找类似于: plot 'file' every ::0::0: using ($2):(f($2)) pause -1 plot 'file' every ::1::1: using ($2):(f($2)) ..

假设我将以下数据存储在文件“file”(令人兴奋!)中:

也是一个给定的函数f。 我想画几个图,一个接一个,每个图由(x,y)坐标中的一个点组成:a_2,f(a_2),然后b_2,f(b_2),等等

我想使用一个只使用gnuplot的解决方案(我想一定有一个,尽管我找不到!)

我正在寻找类似于:

plot 'file' every ::0::0: using ($2):(f($2))
pause -1
plot 'file' every ::1::1: using ($2):(f($2))
...

我似乎在做一些太复杂的事情。。。谢谢你的帮助

以下内容对我来说很好。获取数据文件
文件

0 1 2 3 4 
5 6 7 8 9
然后使用:

f(x) = x**2
plot 'file' every ::0::0 using 3:(f($3))
它在
(2,4)
处为我绘制了一个点。对于自动迭代,使用例如

stats 'file' using 0 nooutput
do for [i=0:int(STATS_records-1)] {
    plot 'file' every ::i::i using 3:(f($3))
    pause -1
}

列编号从
1
开始,
0
是行号。因此,使用3:(f($3))
every::0::0打印'file'时,它应该可以正常工作。是的,你说得对,克里斯托夫。但这是我的错别字!你的建议也不管用。@Christoph我真的想提出一点。是的,我明白。我看不出你有什么问题或错误。请看我的答案,了解一个有效的例子。亲爱的克里斯托夫,它现在起作用了!我在末尾删除了“:”,也就是说,有效的是您所说的“every::0::0”,而不是我之前尝试过的“every::0::0:”。你知道为什么吗?我没注意到结尾的分号。我想这是解析
每个
表达式的一个限制,它不允许结尾分号。然而,这要么是解析中的一个bug,要么是必须修改文档,当前的文档说明是:
任何数字都可以省略;增量默认为unity…
(请参阅帮助每一次)。但是我确实在
every::0::0:
中得到了一个错误,使用
未定义变量,您也得到了一个吗?对于
every::0::0:1
我没问题。这就是你的意思吗?使用
every::0::0:
我使用
获得错误
未定义的变量。我在版本为4.4 patchlevel 2的远程计算机上使用Gnuplot。我同意你对文档的评论,因为它是我的代码行的源代码!!是的,我就是这个意思。我会向gnuplot开发者报告的。谢谢Christoph。事实上,我的完整命令是使用3:(f($3)),f(x)
每::0::0打印一次“文件”,我得到了以下消息
空x范围[2:2],调整为[1.98:2.02]
,这样我就不会得到整个函数的任何相关信息。。。你知道为什么Gnuplot会这样做吗?
stats 'file' using 0 nooutput
do for [i=0:int(STATS_records-1)] {
    plot 'file' every ::i::i using 3:(f($3))
    pause -1
}