2017-04-03 32 views
1

我想先說我對gnuplot很新。我試圖繪製多個堆積的直方圖,這些直方圖已經過標準化,因此每個小節的高度都是1.我還希望不必修改我的數據文件以包含總數作爲最後一項,因爲我有大量數據文件來繪製,這將需要很多時間。我環顧四周,我知道這可以完成,但我已經在修改我發現可以使用我正在使用的代碼的示例的過程中不成功。 我使用的數據文件(顯着縮短)被命名爲「TEST.DAT」和格式如下:GNUPLOT:多個直方圖,每個都有標準化的條形碼

#a = 2 
#b 1 2 3 X 
b=1 1 3 1 
b=2 0 1 1 

#a = 4 
b 1 2 3 X 
b=1 1 1.5 1.5  
b=2 1 2.1 1.9 

在此,每個行以B開頭= x被意味着是一個單杆,並有兩個兩個條的組對應於a = x。我.gp文件目前看起來是這樣的:

set style data histogram 
set style histogram rowstacked gap .5 title offset 0, -1 
set style fill solid border -1 
set boxwidth .75 relative 
set yrange [0:] 
unset xtics 

plot \\ 

newhistogram "b=2" lt 1, for[col=2:4] 'Test.dat' index 0 u col:xtic(1) notitle \ 
,newhistogram "b=4" lt 1, for[col=2:4] 'Test.dat' index 1 u col:xtic(1) notitle \ 

這給image,但這是what I would like to get。我會很感激你可以提供的任何幫助。

回答

0
  1. 您錯過了第二個數據庫中的註釋符號「#」。

  2. 您必須將每個數據塊與空行隔開。

  3. 您正在使用數據文件"b=1""b=2",但"b=2"和腳本b=4

  4. 最後:gnuplot能夠使堆積直方圖,但也沒有辦法正常化他們自動的,但手動: -/

    set style data histogram 
    set style histogram rowstacked gap .5 title offset 0, -1 
    set style fill solid border -1 
    set boxwidth .75 relative 
    set yrange [0:] 
    unset xtics 
    
    plot \\\ 
    
    newhistogram "b=1" lt 1, for[col=2:4] 'Test.dat' index 0 u (column(col)/$5):xtic(1) notitle, \ 
    newhistogram "b=2" lt 1, for[col=2:4] 'Test.dat' index 1 u (column(col)/$5):xtic(1) notitle 
    
+0

評論1-3是我犯了複製錯誤我必須在這裏-_-。感謝您的回覆,這太糟糕了,您無法在gnuplot中定義一個函數來執行此操作,但謝謝您。 – Scot

相關問題