2017-04-12 14 views
2

私はGnuplotを使ってプロットラインを持つヒストグラムを作成していますが、プロットラインはバーヘッドにうまく収まらず、バーヘッドから少し離れています。プロットラインを使ったGnuplotヒストグラム

enter image description here

set border 3 
set boxwidth 0.9 
set tics nomirror out scale 0.75 
set style fill solid 0.8 

plot "03.txt" using 2:xtic(1) lt rgb "#0060ad" notitle, "" using 2 smooth csplines notitle with lines ls 1, "" using 3 lt rgb "#ff6600" notitle, "" using 3 smooth csplines notitle with lines ls 2, "" using 4 lt rgb "#dd181f" notitle, "" using 4 smooth csplines notitle with lines ls 3 

更新:

これは、データファイルです:

これは、任意の数の列のために働く必要があります
500000  25.938   25.938  2 
1000000  52.385   52.385  4 
1500000  79.749   78.405  6.125 
2000000  152.589   100.261  12.479 
2500000  224.869   118.364  19.159 
+0

(y軸の単位)OFFSET変数と縦のカーブをオフセットすることができます。私はあなたがスプラインの 'using'節をチューニングすることであなたが望むものを達成すると信じていますが、あなたのコラム2の内容が簡単な選択に影響するかもしれません。 「バーの頭から少し離れたところにラインを置く」とは、スプライン全体が垂直にずれていることを意味しますか? – Joce

+0

@Joce私はデータファイルを追加しました。はい、棒線でプロット線を張るのを避けるために垂直シフトが必要です。 – Boubakr

答えて

2

は、あなたが変数Nでそれらを指定する必要があり、それらをカスタム関数xboxの呼び出しで番号付けします。これは、非集中的な使用のために行う必要があります。あなたはそれがあなたのデータファイル(またはそれの重要な部分)を投稿するのが無難で

set border 3 
#number of columns to be plotted 
N=3 
#vertical offset 
OFFSET=0 
#gapwidth (set to gnuplot's default) 
GW=2 
xbox(x,i)=x+(i-N*0.5)/(N+GW) 
set boxwidth 0.9 
set tics nomirror out scale 0.75 
set style fill solid 0.8 

plot "03.txt" using 2:xtic(1) lt rgb "0060ad" notitle, \ 
     "" using 2 with histogram notitle,  \ 
     "" using (xbox($0,1)):($2+OFFSET) smooth csplines notitle with lines ls 1,  \ 
     "" using 3 lt rgb "#ff6600" notitle with histogram, \ 
     "" using (xbox($0,2)):($3+OFFSET) smooth csplines notitle with lines ls 2,  \ 
     "" using 4 lt rgb "#dd181f" notitle with histogram, \ 
     "" using (xbox($0,3)):($4+OFFSET) smooth csplines notitle with lines ls 3 
関連する問題