2017-06-27 28 views
0

関数をプロットするときに、gnuplotで垂直線を取得する方法がいくつかあります。 set arrow機能のように。私はヒストグラムにこの機能が必要であり、ヒストグラムはX軸上で0.0の異なる位置を持つことが分かります。私の場合、X軸マーカーはデータファイルの文字列です。ヒストグラム用のgnuplotに垂直マーカー線を追加する

ヒストグラムをプロットすると、平均値±3シグマがあり、太い実線のプロットの上から下に垂直線でマークされたX = 0の点があるといいでしょう。

マイヒストグラムコード:

set boxwidth 1.0 absolute 
set style line 1 lc rgb 'skyblue' 
set style fill solid border lt -1 
set style data histogram 
set style histogram clustered gap 0.0 
set xtics in rotate by 90 offset first +0.5,0 right 
set xlabel 
set ylabel 'Count' 
set terminal unknown 
plot 'histo.raw' using 3 
set title 'data' 
set yrange [0:GPVAL_DATA_Y_MAX*1.2] 
set term X11 
plot 'histo.raw' using 3:xtic(2) ls 1 title columnheader(1) 
set arrow 1 from 0.0,0.0 to 0.0,GPVAL_DATA_Y_MAX*1.2 nohead 

マイデータ:

"data" 
    0 "-INF -> -5.0"  0 0.00 
    1 " -5.0 -> -4.5"  0 0.00 
    2 " -4.5 -> -4.0"  2 0.03 
    3 " -4.0 -> -3.5"  4 0.06 
    4 " -3.5 -> -3.0"  3 0.05 
    5 " -3.0 -> -2.5"  5 0.08 
    6 " -2.5 -> -2.0"  19 0.30 
    7 " -2.0 -> -1.5"  49 0.78 
    8 " -1.5 -> -1.0" 193 3.07 
    9 " -1.0 -> -0.5" 527 8.39 
    10 " -0.5 -> +0.0" 1289 20.53 
    11 " +0.0 -> +0.5" 1878 29.90 
    12 " +0.5 -> +1.0" 1411 22.47 
    13 " +1.0 -> +1.5" 636 10.13 
    14 " +1.5 -> +2.0" 178 2.83 
    15 " +2.0 -> +2.5"  56 0.89 
    16 " +2.5 -> +3.0"  17 0.27 
    17 " +3.0 -> +3.5"  9 0.14 
    18 " +3.5 -> +4.0"  4 0.06 
    19 " +4.0 -> +4.5"  0 0.00 
    20 " +4.5 -> +5.0"  0 0.00 
    21 " +5.0 -> +INF"  0 0.00 

set arrow関数が間違った場所に行を置きます。このデータで

set arrow 1 from 0.0,0.0 to 0.0,GPVAL_DATA_Y_MAX*1.2 nohead 

mean= 0.2743 
sigma= 0.7491 

あなたのアイデアをお寄せいただきありがとうございます。

ゲルト

答えて

0

私は、ヒストグラムのバーは、独自のXは、左から右にカウント座標定義していることがわかりました。私は22のヒストグラムバーに対して22のデータ行を持っているので、ライン位置に11.0を加えてジョブを行います。

set boxwidth 1.0 absolute 
set style line 1 lc rgb 'skyblue' 
set style fill solid border lt -1 
set style data histogram 
set style histogram clustered gap 0.0 
set xtics in rotate by 90 offset first +0.5,0 right 
set xlabel 
set ylabel 'Count' 
set terminal unknown 
plot 'histo.raw' using 3 
set title 'data' 
set yrange [0:GPVAL_DATA_Y_MAX*1.2] 
set terminal png size 1200,800 
set output 'histo.png' 
mean= +0.2743 
sdev= +0.7491 
lboffs= 0.2 
set arrow from 11.0 + mean,0.0 to 11.0 + mean ,GPVAL_DATA_Y_MAX*1.2 nohead lw 2 lc rgb "dark-green" 
set arrow from 11.0 + mean - 3 * sdev,0.0 to 11.0 + mean - 3 * sdev ,GPVAL_DATA_Y_MAX*1.2 nohead lw 2 lc rgb "red" 
set arrow from 11.0 + mean + 3 * sdev,0.0 to 11.0 + mean + 3 * sdev ,GPVAL_DATA_Y_MAX*1.2 nohead lw 2 lc rgb "red" 
set arrow from 11.0,0.0 to 11.0,GPVAL_DATA_Y_MAX*1.2 nohead lw 2 lc rgb "blue" 
set label "Mean" at 11.0 + mean + lboffs,GPVAL_DATA_Y_MAX*1.1 tc rgb "dark-green" 
set label "+3%" at 11.0 + mean + 3 * sdev + lboffs,GPVAL_DATA_Y_MAX*1.1 tc rgb "red" 
set label "-3%" at 11.0 + mean - 3 * sdev + lboffs,GPVAL_DATA_Y_MAX*1.1 tc rgb "red" 
plot 'histo.raw' using 3:xtic(2) ls 1 title columnheader(1) 
set output 
set term X11 
関連する問題