2

我有这些数据:

Length  A   B   C   D   E   F   A_err   B_err   C_err   D_err   E_err   F_err
17  0,51    1,4 0   0   0   0,07    0,11    0,33    0   0   0   0,08    
18  1,33    2,49    1,88    0,51    1,21    0,2 0,18    0,43    1,05    0,5 0,5 0,14    
19  2,56    3,83    3,75    0,76    4,22    0,81    0,25    0,53    1,47    0,61    0,92    0,28    
20  8,28    7,22    3,44    5,46    5,16    9,19    0,44    0,72    1,41    1,59    1,02    0,89    
21  29,96   20  15,78   16,65   13,66   62,58   0,74    1,11    2,82    2,6 1,58    1,49    
22  34,16   42,3    56,25   31,51   37,14   16  0,76    1,37    3,84    3,25    2,22    1,13    
23  14,23   16,59   17,03   29,86   21,28   1,55    0,56    1,03    2,91    3,2 1,88    0,38    
24  6,98    4,39    1,72    12,58   9,6 9,54    0,41    0,57    1,01    2,32    1,35    0,9 
25  1,23    1,02    0,16    1,65    4,55    0,05    0,18    0,28    0,31    0,89    0,96    0,07    
26  0,45    0,44    0   0,89    1,76    0   0,11    0,18    0   0,66    0,6 0   
27  0,18    0,1 0   0   1,04    0   0,07    0,09    0   0   0,47    0

使用此代码,我获得了带有误差线的漂亮直方图:

set terminal pngcairo enhanced font "arial,15" fontscale 2.0 size 1600,900 
set output 'length.png'
set style fill solid 0.7 border lt -1
set key inside right top vertical Right noreverse noenhanced autotitles columnhead nobox
set grid ytics
set nokey
set style histogram errorbars linewidth 1 gap 3 title offset character 0, 0, 0
set datafile missing '-'
set style data histograms
set xtics border in scale 1,0.5 nomirror  offset character 0, 0, 0 autojustify
set xtics norangelimit font ",12"
set xtics ()
set xlabel "n"
set ylabel "Percentage (%)"
set title "length" 
set bars 0.3 front
set datafile separator "\t"
set yrange [ 0 : * ] noreverse nowriteback
plot 'length.dat' using 2:8:xtic(1), '' u 3:9:xtic(1), '' u 4:10:xtic(1), '' u 5:11:xtic(1), '' u 6:12:xtic(1), '' u 7:13:xtic(1)

获得的图像在这里:http: //i.stack.imgur.com/s88QJ.png

但是,一些错误栏只是没有出现。我注意到这是因为错误值低于 1。但是为什么呢?我希望出现所有错误栏。代码中是否存在禁止低于 1 的错误出现的问题?

谢谢你的帮助

4

1 回答 1

0

对我来说,您的问题似乎是您在,文件中使用小数点字符,而不是.gnuplot 本身可以理解的字符。有两种可能的解决方案。我从谷歌搜索中找到的第一个,但无法测试:

set locale

或者

set locale "ja_JP.UTF-8" #gnuplot complains this isn't available for me ...

也许set decimalsign local "..."


第二种解决方案不太优雅,但它涉及将您的所有内容转换为您,.数据文件。这是一件微不足道的事情sed

sed -e 's/,/\./g' length.dat > length2.dat

现在你可以使用绘图length2.dat了,它应该可以正常工作(它对我有用)。顺便说一句,我认为这是一个非常丰富多彩的情节。pngcairo 终端在这方面做得很好。

于 2012-09-21T11:16:41.773 回答