Search code examples
gnuplotbar-chartaxis-labels

Gnuplot Bar chart with error bars


I have the following data

Name   Value of the bar   Confidence interval
A      0.62               [0.59 0.63]
B      0.64               [0.54 0.72]
C      0.51               [0.46 0.67]
D      0.33               [0.25 0.36]

I tried to plot it as a bar chart with A,B,C and D labeling each bar and with and error bar.

By using

plot "my.dat" using 1; with boxes I only get a bar chart. Can someone help me?


Solution

  • Just for the records and in addition to Christoph's solution, for those users who do not have sed available. There is a simple gnuplot-only solution without external tools, hence, platform-independent.

    Standard column separator is whitespace. So, in order to handle the unfortunate brackets in the input data, take strcol(3) (check help stringcolumn), neglect the first character (check help substr) and convert it into a real number (check help real). For the 4th column gnuplot will ignore the trailing ] without further action.

    Data: SO24871941.dat

    Name   Value of the bar   Confidence interval
    A      0.62               [0.59 0.63]
    B      0.64               [0.54 0.72]
    C      0.51               [0.46 0.67]
    D      0.33               [0.25 0.36]
    

    Script: (works for gnuplot>=4.4.0, March 2010)

    ### add errorbar to boxes from special data format
    reset
    
    FILE = "SO24871941.dat"
    
    set style fill solid 0.3
    set boxwidth 0.8
    set yrange[0:*]
    set key noautotitle
    
    plot FILE u 0:2:0:xtic(1) w boxes lc var, \
           '' u 0:2:(real(strcol(3)[2:])):4 w yerr lc rgb "black" pt 7 lw 2
    ### end of script
    

    Result: (created with gnuplot 5.2.8)

    enter image description here