Gnuplot 以毫秒为单位分析UNIX时间戳作为时间
版本:Gnuplot 以毫秒为单位分析UNIX时间戳作为时间,gnuplot,Gnuplot,版本:gnuplotv5.3.0 上下文 我试图绘制以下CSV数据,其中第一列是以毫秒为单位的UNIX时间戳,使用浮点表示法,第二列是表示即时吞吐量的整数(单位/s) 为此,我编写了以下脚本文件: set xdata time set timefmt "%s" set datafile separator comma plot "results.csv" u 1:3 我从gnuplotV5文档中了解到,此版本支持毫秒精度: 当前版本的gnuplot以
gnuplotv5.3.0
上下文
我试图绘制以下CSV数据,其中第一列是以毫秒为单位的UNIX时间戳,使用浮点表示法,第二列是表示即时吞吐量的整数(单位/s)
为此,我编写了以下脚本文件:
set xdata time
set timefmt "%s"
set datafile separator comma
plot "results.csv" u 1:3
我从gnuplot
V5文档中了解到,此版本支持毫秒精度:
当前版本的gnuplot以毫秒精度存储时间
问题
执行plot
命令后,gnuplot
会对CSV文件中的每个数据条目抛出以下警告,并且不会打印任何值:
"throughput.plt", line 15: warning: time value out of range
我试过的
我在秒内将数据文件第一列中的所有条目转换为UNIX时间戳(将e+12
更改为e+9
)。这次plot
执行时没有任何错误,但精度的损失使图形过于近似,无法进行分析
在
gnuplot
中是否有方法以毫秒为单位摄取UNIX时间戳?从所有值中减去第一个值。像这样的。您还可以为此使用伪列$0
代码:(编辑:我更喜欢复制粘贴示例,包括数据)
结果:
从所有值中减去第一个值。像这样的。您还可以为此使用伪列
$0
代码:(编辑:我更喜欢复制粘贴示例,包括数据)
结果:
如果表示时间的列在UNIX时间中已表示为实数,则不需要设置时间“%s”。按原样读取数字就足够了 但是,数据中的数字“1.6069112402441587e+12”被解释为UNIX时间“52890/12/27 17:24:04+0000”。因此,您将收到消息“警告:时间值超出范围”。当然,这不是你想要的时间 如果要按原样使用数据,脚本将如下所示
set xdata time
# set timefmt "%s" ### This line is not needed!
set datafile separator comma
set format x "%H:%M\n%.4S"
set grid xtics
plot "results.csv" u ($1/1000):2 w linespoints
如果表示时间的列在UNIX时间中已表示为实数,则不需要设置时间“%s”。按原样读取数字就足够了 但是,数据中的数字“1.6069112402441587e+12”被解释为UNIX时间“52890/12/27 17:24:04+0000”。因此,您将收到消息“警告:时间值超出范围”。当然,这不是你想要的时间 如果要按原样使用数据,脚本将如下所示
set xdata time
# set timefmt "%s" ### This line is not needed!
set datafile separator comma
set format x "%H:%M\n%.4S"
set grid xtics
plot "results.csv" u ($1/1000):2 w linespoints
从所有值中减去第一个值怎么样?e、 g.1.6069112402441587e+12。我不认为您希望在几天内以毫秒精度显示测量数据…不是在几天内,而是在1-30分钟之间,这取决于正在执行的负载测试。从所有值中减去第一个值如何?e、 g.1.6069112402441587e+12。我不认为你想在几天内以毫秒精度显示测量数据……不是在几天内,而是在1-30分钟之间,这取决于正在执行的负载测试。这是我注意到的一个非常巧妙的技巧。我的选择是使用
set format x“%.0f”
显示原始时间戳,并使用set xtics 10000
每隔10秒显示一个勾号。如何使用生成的x
值以秒为单位显示刻度?例如,除以1000,即将$1-t0
替换为($1-t0)/1000
,或以分钟为单位($1-t0)/60000
,等等。这是我注意到的一个非常巧妙的技巧。我的选择是使用set format x“%.0f”
显示原始时间戳,并使用set xtics 10000
每隔10秒显示一个勾号。如何使用生成的x
值以秒为单位显示刻度?例如,除以1000,即将$1-t0
替换为($1-t0)/1000
,或以分钟为单位($1-t0)/60000
,等等。这正是我希望看到的结果。我从e+12
到e+9
的转换非常接近,结果证明我没有失去任何精度。这正是我期望看到的结果。我从e+12
到e+9
的转换非常接近,结果证明我没有失去任何精度。
set xdata time
# set timefmt "%s" ### This line is not needed!
set datafile separator comma
set format x "%H:%M\n%.4S"
set grid xtics
plot "results.csv" u ($1/1000):2 w linespoints