pydichandra
pydichandra

Reputation: 63

gnuplot histogram: How to put values on top of bars

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.

Upvotes: 6

Views: 21882

Answers (3)

user1228310
user1228310

Reputation: 121

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

Upvotes: 5

dai1741
dai1741

Reputation: 336

using 0 works well with xtic().

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

Upvotes: 14

Woltan
Woltan

Reputation: 14033

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.

Upvotes: 5

Related Questions