gnuplot:从原始数据创建箱线图

gnuplot:从原始数据创建箱线图,gnuplot,boxplot,Gnuplot,Boxplot,gnuplot能否从原始数据文件创建箱线图?我知道如何从已经计算的中位数、四分位数等绘制箱线图,但如何从原始数据文件绘制箱线图 在原始数据文件的每一行中都有一个测试结果。如果我正确理解了您的问题,并且您正在寻找计算平均值的方法,您可以执行以下操作: 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 &

gnuplot能否从原始数据文件创建箱线图?我知道如何从已经计算的中位数、四分位数等绘制箱线图,但如何从原始数据文件绘制箱线图


在原始数据文件的每一行中都有一个测试结果。

如果我正确理解了您的问题,并且您正在寻找计算平均值的方法,您可以执行以下操作:

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
您将获得以下绘图:


我希望这就是您所寻找的。

我认为您最终必须使用外部程序来计算方框图所需的数据。我用过awk,但任何程序都可以在这个地方使用。请注意,我计算了每行原始数据的开始/结束/最小/最大值,而不是平均值和分位数

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
以下是您将获得的绘图:


我自己刚刚发现了这一点,在gnuplot 4.5(目前的cvs开发版本)中,它有这个特性

目前,这意味着您必须自己从源代码编译gnuplot

完成后,这里有一个演示文件:

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