Basic
Currently we have a file called test.dat with the data organized as such:
HI 1215.6701 0.416400 6.265E8 1.00794 Morton(03), 2cpts sep by 1.3 km/s, A&G:10.446
HI 1025.7223 0.079120 1.897E8
HI 972.5368 0.029000 8.127E7
HI 949.7431 0.013940 4.204E7
HI 937.8035 0.007799 2.450E7
HI 930.7483 0.004814 1.236E7 Aki only (< real Gamma)
HI 926.2257 0.003183 8.255E6
HI 923.1504 0.002216 5.785E6
HI 920.9631 0.001605 4.210E6
HI 919.3514 0.00120 3.160E6
HI 918.1294 0.000921 2.432E6
HI 917.1806 7.226e-4 1.911E6
HI 916.429 0.000577 1.529E6
...
In order to mark absorption lines we need the data in this format:
set label 1 " HI 1215.6701 " at 4022.75,0.4 rotate
set label 2 " HI 1025.7223 " at 3394.2,0.4 rotate
set label 3 " HI 972.5368 " at 3218.2,0.4 rotate
set label 4 " HI 949.7431 " at 3142.78,0.4 rotate
set label 5 " HI 937.8035 " at 3103.27,0.4 rotate
set label 6 " HI 930.7483 " at 3079.92,0.4 rotate
set label 7 " HI 926.2257 " at 3064.95,0.4 rotate
set label 8 " HI 923.1504 " at 3054.78,0.4 rotate
set label 9 " HI 920.9631 " at 3047.54,0.4 rotate
set label 10 " HI 919.3514 " at 3042.21,0.4 rotate
set label 11 " HI 918.1294 " at 3038.16,0.4 rotate
set label 12 " HI 917.1806 " at 3035.02,0.4 rotate
set label 13 " HI 916.429 " at 3032.54,0.4 rotate
...
This is the code that parses test.dat to produce readable input for gnuplot:
awk '{print "set label",FNR, "\"",$1,$2,"\"","at", $2*3.30908",0.4 rotate"}' test.dat > show.p
Then loading the file show.p in gnuplot labels the absorption lines at the proper frequencies: