gnuplot-如何延迟一个系列?

gnuplot-如何延迟一个系列?,gnuplot,lag,Gnuplot,Lag,我有两个系列在一个文件中,我希望滞后一个,以便我可以做散点图 最好,我希望在以下函数中执行此操作: f(x,y) = x*(y-previous(y)) 有办法做到这一点吗 甚至 plot "mydata.txt" u 3:(lagged($3)) 会有帮助的 Welcome to the XWin X Server Vendor: The Cygwin/X Project Release: 1.13.3.0 OS: CYGWIN_NT-6.1-WOW64 LskyHome2 1.7.

我有两个系列在一个文件中,我希望滞后一个,以便我可以做散点图

最好,我希望在以下函数中执行此操作:

f(x,y) = x*(y-previous(y))
有办法做到这一点吗

甚至

plot "mydata.txt" u 3:(lagged($3))
会有帮助的

Welcome to the XWin X Server 
Vendor: The Cygwin/X Project 
Release: 1.13.3.0 
OS: CYGWIN_NT-6.1-WOW64 LskyHome2 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 
OS: Windows 7 Service Pack 1 [Windows NT 6.1 build 7601] (WoW64) 
Package: version 1.13.3-1 built 2013-03-09 

您可以定义一个函数:

lag(x) = ($0 == 0) ? (val1 = x, 0) : (val2 = val1, val1 = x, val1-val2)
这将返回每个点与前一个点之间的差值,如果是第一个数据点,则返回0
$0
是行号伪列;如果从plot命令中调用数据文件中的列,则函数可以查看这些列

你可以像这样使用它

plot 'mydata.txt' u 3:(lag($3))

我得到这个错误:gnuplot>lag(x)=($0==0)?(val1=x,0):(val2=val1,val1=x,val1-val2)^’’预期的hmm。运行该命令时我没有收到错误。您是否在定义函数或使用函数时遇到错误?您使用的是哪个版本的gnuplot/平台?我在问题中添加了系统详细信息。谢谢,了解gnuplot版本仍然是有用的信息。在运行旧版本(4.2.6)时,我会遇到相同的错误,但在使用较新版本(4.6.1或4.7.0)时不会出现。您可以尝试更新gnuplot,看看这是否有帮助。gnuplot 4.6补丁级别0。我不知道如何得到更新的版本。我使用cygwin setup.exe-这并没有提供选择。。。