看來我的 gnuplot 知識越來越生疏了;至少我看不出有什么問題:
我有一個看起來像這樣的資料檔案(實際檔案有超過 50000 行,欄位由 TAB 分隔):
#date-and-time(0) 1(1) 5(2) 9(3) 12(4) 13(5) 170(6) 174(7) 179(8) 180(9) 181(10) 182(11) 184(12) 194(13) 195(14) 197(15) 198(16) 199(17) 201(18) 202(19) 225(20) 226(21) 227(22) 228(23) 232(24) 233(25) 234(26) 241(27) 242(28) 245(29)
2022-01-24 05:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
2022-01-24 06:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
2022-01-24 06:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
2022-01-24 07:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
gnuplot 會話如下所示:
Terminal type is now 'qt'
gnuplot> plot "attrlog.short" using 1:6 with linesp
Warning: empty x range [2022:2022], adjusting to [2001.78:2042.22]
Warning: empty y range [100:100], adjusting to [99:101]
gnuplot> set dataf sep tab
gnuplot> set form x "%F %T"
gnuplot> set timefmt "%F %T"
gnuplot> set xdata time
gnuplot> repl
2022-01-24 05:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:2: warning: Bad time format in string
2022-01-24 05:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:2: warning: Bad time format in string
2022-01-24 06:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:3: warning: Bad time format in string
2022-01-24 06:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:3: warning: Bad time format in string
2022-01-24 06:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:4: warning: Bad time format in string
2022-01-24 06:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:4: warning: Bad time format in string
2022-01-24 07:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:5: warning: Bad time format in string
2022-01-24 07:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:5: warning: Bad time format in string
Warning: empty x range [0:0], adjusting to [-1:1]
Warning: empty y range [95:95], adjusting to [94.05:95.95]
gnuplot> set form x "%Y-%m-%d %T"
gnuplot> set timefmt "%Y-%m-%d %T"
gnuplot> repl
2022-01-24 05:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:2: warning: Bad time format in string
2022-01-24 06:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:3: warning: Bad time format in string
2022-01-24 06:36:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:4: warning: Bad time format in string
2022-01-24 07:06:22 130 100 100 100 95 100 100 100 100 100 100 100 100 100 10...
attrlog.short:5: warning: Bad time format in string
Warning: empty x range [1.64298e 09:1.64298e 09], adjusting to [1.62655e 09:1.65941e 09]
Warning: empty y range [95:95], adjusting to [94.05:95.95]
gnuplot>
最初我使用“%F”而不是“%Y-%m-%d”,但即使現在它也不起作用,我不明白為什么。示例會話是使用 gnuplut 5.2 補丁級別 2 制作的,而最初問題是在 5.2 補丁級別 8 中發現的。
資料格式應該很明顯: YYYY-MM-DD HH:MM:SS
uj5u.com熱心網友回復:
占位符%F(日期)和%T(時間)對無效set timefmt。因此,當使用這些命令時,事情應該會順利進行:
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
plot "attrlog.short" u 1:6 w lp
詳情可見help time_specifiers:
%F并且%T僅用于輸出,而不是您嘗試的輸入。
輸出:
set format x '%F %T'會作業,但是輸入:
set timefmt '%F %T'不會根據檔案作業。將其更改為set timefmt '%Y-%m-%d %H:%M:%S'.
請注意:如果您想95在資料示例中繪制列
如果您的分隔符是空格(默認),則必須指定第 7 列。
如果您明確將 TAB 作為分隔符(這是您稍后指定的)并且您的日期/時間中的空間是“正常”空間,那么第 6 列就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/422680.html
標籤:
上一篇:如何正確減去兩個UNIX時間戳列
下一篇:IntellijMavenjava.lang.IllegalArgumentException:不支持的類檔案主要版本61和物體是使用不支持的JDK編譯的
