2013-05-07 73 views
1

我想使用gnuplot查看一些分析數據;我有幾個文件,每個文件格式如下:從多個文件中gnuplot Columnstacked直方圖

file_runXX.dat: 
elapsed time, stage 
elapsed time, stage 

例如:

0 foo 
1 step_1 
1.5 step_2 
2.3 step_3 

0 bar 
0.75 step_1 
1.3 step_2 
2.1 step_3 

要繪製他們,我用:

set style data histogram 
set style histogram columnstack 
plot for [i=1:2] sprintf("%02d.log", i) using 1 

我得到一個帶有兩個垂直條的圖:at我有一個酒吧從y = 0到y = 1,然後y = 1到y = 1.5和y = 1.5到y = 2.3。在x = 1時,我有與第二個文件相同的數據。

兩個問題:

(一)這是正確的方式做到這一點(即,它的工作原理,但有更好的東西?),和

(二)如何設置的xlabels閱讀「foo」和「bar」(參見每個文件的第2列第1行)?我試圖用using 1:xtic(2)title columnheader和其他幾個選項來搞亂,但似乎只有一個文件包含兩個時間戳才能使用(我不確定我能做到這一點,因爲我有時在一個文件中有step 2a,但是而不是在其他方面;是的,我知道這可能意味着酒吧之間的顏色不會一致)。

感謝

+0

如果您不喜歡這些答案,請告訴我們爲什麼。 – user829755 2013-05-23 19:50:11

+0

對不起,我在度假了幾天。這不是一個投訴。 – Mikeage 2013-05-26 10:18:14

回答

1

,或者你可以轉置數據:

#label step_1 step_2 step_3 
foo  1  1.5  2.3 
bar  .75  1.3  2.1 

...然後使用以下命令:

set style data histograms 
set boxwidth .7 
set style histogram rowstacked 
plot for [COL=2:4] "all.dat" using COL:xticlabels(1) 

這增加了一個傳奇,你可以抑制或自定義。

1

,你可以在一個製表符分隔文件all.dat將所有數據:

foo bar 
1 .75 
1.5 1.3 
2.3 2.1 

,然後使用下面的命令:

set style data histograms 
set style histogram columnstacked 
set boxwidth .7 
plot for [COL=1:2] "all.dat" using COL title columnhead 
+0

實際上我的解決方案只回答問題b。關於a:一個文件比多個數據文件更好,因爲這表明了step_x標籤的不相關性。在你原來的建議,你可以從一個文件中刪除step_2行,數據仍然看起來不錯,但情節可能會默默地打破。 – user829755 2013-05-20 11:09:02