5
votes

I'm reading data from a csv file in help of gnuplot. Most of the lines have 8 columns, some of them 9. Whenever there are 9 columns, I'd like to draw a vertical line (think of marking that position). Can I achieve that with gnuplot?

2
OK, I found a hack: Taking 0 as default value, and if there are 9 columns, use a higher value and draw that line. But is there a better solution, since the additional drawing ruins the scale of the graph... - Herr K

2 Answers

31
votes

You could use (and suppose that my point in x-axes is 0.35, and I want for entire y-axes ):

set arrow from 0.35,graph(0,0) to 0.35,graph(1,1) nohead

Or, if you want show this in a specific y range{ymin,ymax}

set arrow from 0.35,ymin to 0.35,ymax nohead

If you want to customize more you can use:

set style arrow {idx:index} default 

set style arrow {idx:index} [ nohead | head | backhead | heads ] 

                            [ size {flt:length} [,{flt:angle}]

                                   [,{flt:backangle}] ] 

                            [ filled | empty | nofilled ] 

                            [ front | back ] 

                            [ [ linetype | lt {idx:type} ] 

                              [ linewidth | lw {int:width} ] 

                              | [ linestyle | ls {idx:style} ] ] 

For more information inside gnuplot run:

help arrow
-9
votes

simply fix the scale by setting the yrange:

set yrange [##:##]

where ## is a place holder for some number :)

Cheers,
B2S