我是使用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,但到目前为止还没有任何工作。那么,有什么建议吗?感谢。
答案 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)
如果您明确需要绘制最小值和最大值,则必须添加第三列。但最后两列是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)