2011-08-11 4 views
2

生データファイルからボックスプロットを作成できますか?私はすでに計算された中央値、四分位数などのボックスプロットをどのようにプロットできるのかを知っていますlike this - しかし、生データファイルからどうですか?gnuplot:生データからボックスプロットを作成する

生データファイルの各行には、1つのテスト結果があります。

答えて

0

私が正しくあなたの質問を理解し、あなたがこのような何かを行うことができ、平均値を計算する方法を探している場合:

calc_mean(x1,x2,x3) = (x1+x2+x3)/3 
calc_sum(x1,x2,x3) = x1+x2+x3 
get_min(x1,x2,x3) = x1 < x2 ? (x1 < x3 ? x1 : (x2 < x3 ? x2 : x3)) : (x2 < x3 ? x2 : x3) 
get_max(x1,x2,x3) = x1 > x2 ? (x1 > x3 ? x1 : (x2 > x3 ? x2 : x3)) : (x2 > x3 ? x2 : x3) 

plot "Data.csv" u 0:(calc_mean($1, $2, $3)) t "Mean" w l, \ 
     "" u 0:(calc_sum($1, $2, $3)) t "Sum" w l, \ 
     "" u 0:(get_min($1, $2, $3)) t "Min" w l, \ 
     "" u 0:(get_max($1, $2, $3)) t "Max" w l 

上記のスクリプトは、平均、合計、最小値を算出データラインの最大値。 usingディレクティブの0は、単にデータラインのインデックスをx座標値として取ります。次Data.csv

Plot of the script above

私は、これはあなたが探していたものであると思います:

0.62614 0.50293 0.62078 
0.63789 0.58924 0.71288 
0.16297 0.77453 0.82417 
0.20703 0.22424 0.33596 
0.57829 0.96545 0.60737 

あなたは、次のプロットを取得します。

1

私はボックスプロットに必要なデータを計算するために外部プログラムを使用しなければならないと思います。私はawkを使ってきましたが、どんなプログラムでも使用できます。私は、平均値と分位値の代わりに、生データの各ラインの開始/終了/最小値/最大値を計算したことに注意してください。 junk.datファイルに次のデータで

set xrange [-1:9] 
plot "< awk '{sum=0; opening=$1; closing=$NF; min=$1; max=$1; \ 
       for (i=1; i<=NF; i++) {sum=sum+$i; if ($i<min) min=$i; if ($i>max) max=$i}; \ 
       print sum/NF, opening, closing, min, max}' \ 
     junk.dat" us 0:2:4:5:3 w candle notitle 

5.532 5.040 4.962 19.314 5.136 
    10.004 4.592 5.836 6.999 7.823 
    8.887 6.335 5.545 5.056 6.216 
    4.341 4.552 4.512 4.009 5.811 
    4.724 4.869 5.016 2.593 5.662 
    4.555 5.472 4.866 5.559 -0.608 
    6.974 3.838 2.953 6.630 2.753 
    5.571 8.112 3.261 7.029 4.375 
    3.497 5.200 6.555 5.311 8.204 

ここであなたが得るプロットです:

enter image description here

関連する問題