OSX v10.6.8和Gnuplot v4.4
我有一个包含8列的数据文件.我想从第6列获取第一个值并将其作为标题.这是我到目前为止所拥有的:
#m1 m2 q taua taue K avgPeriodRatio time
#1 2 3 4 5 6 7 8
K = #read in data here
graph(n) = sprintf("K=%.2e",n)
set term aqua enhanced font "Times-Roman,18"
plot file using 1:3 title graph(K)
Run Code Online (Sandbox Code Playgroud)
以下是我的数据文件的前几行:
1.00e-07 1.00e-07 1.00e+00 1.00e+05 1.00e+04 1.00e+01 1.310 12070.00
1.11e-06 1.00e-07 9.02e-02 1.00e+05 1.00e+04 1.00e+01 1.310 12070.00
2.12e-06 1.00e-07 4.72e-02 1.00e+05 1.00e+04 1.00e+01 1.310 12070.00
3.13e-06 1.00e-07 3.20e-02 1.00e+05 1.00e+04 1.00e+01 1.310 12090.00
Run Code Online (Sandbox Code Playgroud)
我不知道如何正确读取数据,或者这是否是正确的解决方法.
编辑#1
好的,多亏了我现在的mgilson
#m1 m2 q …
Run Code Online (Sandbox Code Playgroud) 我正在 gnuplot 中绘制大量文件的创建时间,以查看它们是否按时间线性创建(它们不是)。
这是我的代码:
#!/bin/bash
stat -c %Y img2/*png > timedata
echo "set terminal postscript enhanced colour
set output 'file_creation_time.eps'
plot 'timedata'" | gnuplot
Run Code Online (Sandbox Code Playgroud)
我的问题是 y 数据是自 unix 开始时间以来的创建时间(以秒为单位),因此该图在 y 轴上只有 1.333...e+09。我想让第一个文件的创建时间缩放为零,以便相对创建时间是可读的。
我在许多数据绘图上下文中都遇到了这个问题,因此我希望能够在 gnuplot 中执行此操作,而不是诉诸 awk 或某些实用程序来预处理数据。
我知道第一次将是最小的,因为文件是按顺序命名的,所以有没有办法访问文件中的第一个元素,比如
`plot 'data' using ($1-$1[firstelement])`
Run Code Online (Sandbox Code Playgroud)
?