gnuplot中带有错误栏的集群条形图

时间:2017-01-30 18:13:24

标签: gnuplot

我是使用gnuplot的新手,我跟着this question按照我的意愿绘制了数据。但是,我非常希望也包含错误栏。我尝试通过添加min和max错误列来完成此操作,如下所示:

Broswer,Video,min,max,Audio,min,max,Flash,min,max,HTML,min,max,JavaScript,min,max
IE,30%,5,5,10%,5,5,25%,5,5,20%,5,5,15%,5,5
Chrome,20%,5,5,5%,5,5,35%,5,5,30%,5,5,10%,5,5

然后我尝试使用如下修改的脚本进行绘图:

set terminal pdf enhanced
set output 'bar.pdf'

set style data histogram
set style histogram cluster gap 1

set style fill solid border rgb "black"
set auto x
set yrange [0:*]
set datafile separator ","

plot 'data.dat' using 2:xtic(1) title col with yerrorbars, \
        '' using 3:xtic(1) title col with yerrorbars, \
        '' using 4:xtic(1) title col with yerrorbars, \
        '' using 5:xtic(1) title col with yerrorbars, \
        '' using 6:xtic(1) title col with yerrorbars

根据我从阅读中理解,这也应该绘制错误栏,但我得到错误:

  

" plot2",第16行:这种风格的列数不够

谷歌搜索此错误通知我它与第一列非数字有关。我已经尝试了一些建议,包括this one,但到目前为止还没有任何工作。那么,有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:2)

此错误告诉您,yerrorbars绘图样式需要多个列进行绘图(xtic(1)需要特殊部分)。查看文档,您可以看到,您可以使用两列,三列或四列。我没有详细介绍,因为with yerrorbars选择了一种全新的绘图风格,你根本不会得到任何直方图。

为了绘制聚类直方图,您必须将errorbars添加到直方图的样式定义中,当然您必须为yerror值指定列:

set style data histogram
set style histogram cluster gap 1 errorbars

set style fill solid border rgb "black"
set auto x
set yrange [0:*]
set datafile separator ","

plot 'data.dat' using 2:3:xtic(1) title col(2),\
        '' using 5:6 title col(5), \
        '' using 8:9 title col(8), \
        '' using 11:12 title col(11), \
        '' using 14:15 title col(14)

或者,用较短的符号

plot for [i=2:14:3] 'data.dat' using i:i+1:xtic(1) title col(i)

enter image description here

如果您明确需要绘制最小值和最大值,则必须添加第三列。但最后两列是ymin和ymax而不是delta值。从您的数据文件错误判断,数据文件中的值是增量,因此plot命令应为:

plot for [i=2:14:3] 'data.dat' using i:(column(i) - column(i+1)):(column(i) + column(i+2)):xtic(1) title col(i)