gnuplot histogram: How to put values on top of bars

19,895

Solution 1

With this as some sample data file Data.dat:

1 10
2 20
3 15
4 16
5 19
6 5

You could run this script to display boxes and the corresponding value of that box above it:

set key off
plot 'Data.dat' with boxes fill pattern 1, '' u 1:($2 + 0.5):($2) with labels

Notice the u 1:($2 + 0.5):($2) where the 0.5 specifies how much the value is above the box.

Solution 2

using 0 works well with xtic().

plot 'file.dat' using 2:xtic(1) with histogram, '' using 0:2:2 with labels

Solution 3

Suppose I have the following data.dat file

"Method 1"              99.63               9.13                
"Method 2"              97.35               10.85               
"Method 3"              97.16               13.76                        
"Method 4"              95.16               15.56

I can get the following bar graph plot with values at the top of the bar with following line of commands in gnuplot:

reset

set terminal postscript eps size 3.5,2.62 enhanced color font 'Helvetica,20' lw 2

set output 'StackOverflow.eps'

set style fill solid 1.00

set style histogram clustered gap 1

set style data histograms

set yrange [0:120]

set xtics norangelimit font ",8"

set ytics norangelimit font ",8"

set xlabel "X-Axis" font "Helvetica,10"

set ylabel "Y-Axis" font "Helvetica,10"

set key font ",8"

set key width -8

xoffset=0.17

yoffset=0.03

plot 'data.dat' using 2:xtic(1) with histogram title "Parameter 1", ' ' u 3 with histogram title "Parameter 2", ' 'u 0:2:2 with labels font "Helvetica,10" offset -0.9,0.5 title " ", ''u 0:3:3 with labels font "Helvetica,10" offset 0.9,0.5 title " "

Result:

Bar graph Plot with values at top of the bar

Share:
19,895
pydichandra
Author by

pydichandra

Updated on June 16, 2022

Comments

  • pydichandra
    pydichandra almost 2 years

    I have the following data:

    1   3215
    2   321
    ...
    31_60   59
    60+   32
    

    I would like to generate histogram using gnuplot and put the value of bar on top of it.

    Here is the gnuplot command I tried to create histogram:

    set style data histogram
    set xtics rotate
    plot 'file.dat' using 2:xtic(1)
    

    Can someone tell me how to add values on top of the bars generated?

    I found the following link related histogram (http://gnuplot-tricks.blogspot.com/2009/10/more-on-histograms.html), but didnt get what its doing exactly.

  • pydichandra
    pydichandra about 13 years
    This adds value on top of bar; how do I specify xtic()? x-axis contains string values [30_60, 60_plus, etc].
  • Luis González
    Luis González over 7 years
    how would you control the label position over the bar? I am doing that way but labels are inside bars and not over the bars, check my question please stackoverflow.com/questions/40469555/…