将时间长度转换为分钟格式

Convert length of time to minute format

我目前正在通过 shell 向 gnuplot 传递参数。

我正在提取具有以毫秒为单位的时间尺度的数据(只是一个原始长度) x 轴显示这些原始值(即 6000、120000、18456...) 我想通过我通过脚本传递给 gnuplot 的参数将其转换为分钟或秒 (shell)。我目前有以下论点:

"set title 'temperature stress test results for " + $sn + " on " + $datetime + "
                set term png size 1450, 800
                set xlabel 'Time(ms)'
                set ylabel 'Temperature (C)'
                set key right top
                set autoscale
                set yrange [20:55]
                set format x '%.0f'
                set grid
                set datafile sep ','
                set output '" + $pngfile + "'
                plot  '" + $_ + "' using 1:3 with lines title 'heater', '" + $_ + "' using 1:9 with lines title 'cam0', '" + $_ + "' using 1:10 with lines title 'cam1', '" + $_ + "' using 1:11 with lines title 'cam2', '" + $_ + "' using 1:12 with lines title 'cam3'"

有没有办法重新缩放 x 轴?例如,我期待像 (x = x / 60000) 这样的东西在几分钟内得到它

Gnuplot 时间数据的基本单位是一秒。您有以毫秒为单位的数据,因此在将其解释为时间之前需要除以 1000。因为您的数据是 [毫秒] 秒的绝对数而不是时钟时间,所以您应该使用相对时间格式 tH tM tS。这些允许分数值,并且不会以时钟间隔回绕。 IE。分钟计数在达到 60 时不会重置为 0。

要在 x 轴上以毫秒为单位绘制以毫秒为单位的输入数据,以精确到毫秒的精度标记:

set xlabel 'Time (minutes:seconds)'
set xtics time format "%tM:%.3tS"
plot $DATA using (/1000.):3 title 'whatever'

示例:

plot sample [-1000:10000] '+' using (/1000.):1