2017-04-03 9 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で始まる各行が1つのバーであることを意味し、2つが存在していますa = xに対応する2つのバーのグループ。

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です:私の.gpファイルは、現在、このようになります。あなたが提供できる援助に感謝します。

答えて

0
  1. 2番目のデータボックにコメント記号 "#"がありませんでした。

  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は、私がコピー作られたエラーであるかIここにいなければならなかった。返信いただきありがとうございます。gnuplotでこれを行う関数を定義することはできませんが、残念ですが残念です。 – Scot

関連する問題