2013-06-27 68 views
2

我開始記錄我跑步的日子以及距離。我喜歡用盒子來繪製這個圖表來概述我最近的活躍程度。重疊的x座標相同的兩個數據點

我今天添加了昨天的數據時遇到了問題。

從05/04/13可以看到,有兩次運行,並且該圖在同一天顯示了兩個框(最左邊的框)。我喜歡這種行爲。 2013年6月26日我又跑了兩次,但這次情節只顯示了一個(最右邊的框)。在玩了一段時間之後,我意識到這是因爲在05/04,更大的數字(第2列)首先出現,因此較小的數字被繪製在最上面。 06/26的情況恰恰相反,結果只能看到當天較大的數字。

有沒有辦法解決這個問題,而不改變我的數據文件?

如果可以在劇情腳本中做,我不必看我如何輸入數據到我的文件。


下面是數據:

05/04/13 1.59 
05/04/13 0.81 
05/05/13 1.56 
05/06/13 1.90 
05/08/13 2.77 
05/11/13 2.19 
05/12/13 0.93 
05/14/13 2.50 
05/15/13 1.04 
05/16/13 1.66 
06/02/13 4.02 
06/03/13 1.80 
06/04/13 1.04 
06/05/13 0.93 
06/12/13 1.18 
06/15/13 1.78 
06/16/13 1.26 
06/19/13 0.86 
06/21/13 0.93 
06/26/13 1.05 
06/26/13 1.39 

腳本:

set terminal x11 nopersist size 1200,645 

unset mouse 
unset key 
unset label 
unset grid 

set boxwidth 86400 absolute 
set style fill solid 1.00 border lt -1 
set bmargin at screen 0.08 

set xdata time 
set timefmt x "%m/%d/%y" 
set format x "%b %d" 
set xtics 86400 nomirror rotate by -90 
set mxtics 0 
set xrange [ "05/01/13" : "06/30/13" ] noreverse nowriteback 

set ylabel "Distance" 
set ylabel textcolor lt -1 rotate by -270 
set yrange [ 0.00000 : 4.50000 ] noreverse nowriteback 

plot "/Users/user/Dropbox/nvalt/walks.txt" using 1:2 with boxes lt rgb "#777777" 

情節的圖像: An image of the plot

+0

最簡單的就是編寫一個'awk'腳本來轉換你的數據。然後,您可以在劇本腳本內部操作awk腳本,以便不觸摸原始數據。它會變成'plot「 Bernhard

回答

1

對於這種類型的文件,這不是」這些日子的順序真的很重要,但正如你提到的那樣,da的順序ta很重要。我能夠獲得所需要的輸出,只需更換

plot "/Users/user/Dropbox/nvalt/walks.txt" using 1:2 with boxes lt rgb "#777777" 

通過

plot "<sort -r /Users/user/Dropbox/nvalt/walks.txt" using 1:2 with boxes lt rgb "#777777" 

這也應該就在同一天兩個以上的數據點的工作。

+0

謝謝,這個作品完全像我希望的那樣!一個問題,但我認爲排序命令只是一個UNIX命令,我瞥了一下排序手冊頁,看到-r只是「反轉比較的結果」。我很好奇爲什麼它會顛倒問題數據集,而不是像我想要的那樣工作的第一個條目? – mindheavy

+0

@mindheavy因爲它排序第一。所以先按日期,然後按第二列(但從低到高)。但是,你希望它們高到低,因此'-r'。假設你只想顯示頂欄,那麼你可以使用沒有標誌的「排序」。 – Bernhard

+0

對,有道理。謝謝你的幫助。 – mindheavy

相關問題