1
我嘗試使用Gnuplot可視化隨着時間的推移的一些計算機系統的可用性。對於每個系統,我想繪製一條水平線,當系統「關閉」時,該水平線會在所有時間段中斷。gnuplot:xdata時間和計算
要生成水平線,我想使用「1/0」-trick生成一個常數函數,它對於某些x值是未定義的。
最後,它應該看起來像:
↑
2 ┼ ++++++++++++ +++++++++++++ ++++++++
│
1 ┼ xxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx
│
0 └─┼────┼────┼────┼────┼────┼────┼────┼────┼────→
2011-01-01 2011-06-01
現在我的問題是:gnuplot的可以用「設置外部數據時」處理基於時間的數據。有什麼方法可以用時間/數據值「計算」?下面的代碼說明了我的意思(除了「暗算」命令作品的一切。)
set xdata time
set timefmt "%Y-%m-%d"
set xrange ["2011-01-01":"2013-12-31"]
plot ((x > "2012-01-01") && (x < "2012-05-20")) ? 1 : 1/0 with lines;
而是解釋「2012-01-01」隨着時間的數據,並將其轉換成其內部時表示,gnuplot的單位計算的2012 - 1 -1 = 2010
並將其解釋爲「2000-01-01 00:00:00之後的2010秒」。
當然,我可以手動計算我所有時間點的Gnuplot內部時間表示,但我不知道是否有更優雅和更省時的方式。
strptime()正是我希望能找到!我在Gnuplot手冊中錯過了它,因爲它在_Time/Date data_章節中沒有提及,但僅在_String functions_下提到。 – dasup