Linux KnowHow provides a collection of introductory texts on often needed Linux skills. 
Home Newbie Guide Some Essential Linux Applications Automating creation of graphs with gnuplot  
Search the VIAS Library  Index  
Automating creation of graphs with gnuplotgnuplot is good for automating generation of graphs for numerical data and/or mathematical functions. For "interactive" generation of graphs, I prefer any spreadsheet. As oldfashioned as gnuplot may look, it can be quite handy if you want to periodically regenerate a graph or visualize (for inspection) massive amounts of data from a graph "template". gnuplot is flexible (many options available, including 3d plots) but one needs to take your time to learn it. Setting up a complex graph can take me 2 hours (but it's OK, if the graph is to be reused many times over). The best help is to start gnuplot, and on the "gnuplot>" prompt, type "help". gnuplot is available for Linux and MS Windows. My data sets are stored in text (ASCII, *.dat) files. My "graph templates" are stored in gnuplot "command" files (*.gnu). The output goes to a graphics file (*.png) which can be printed or imported to any word processor. To generate a graph from an example gnuplot command file "make_graphs.gnu", I can do: gnuplot make_graphs.gnu To display the graph, I would do (in X terminal): display my_graph.png My example "make_graphs.gnu" that generates an xy graph follows. # Comment are introduced with the hash (#) # Stamp the graph with the current date and time set timestamp "%Y%m%dT%T%z" # This sets the graph resolution (the default is 100) set samples 600 # Save the plot to a *.png file (make it colour) set output "my_plot.png" set terminal png color #interesting terminals: png, x11, postscript, postscript eps, hpgl set title "My Graph" # Graph title set xlabel "Distance [m]" # title of x1 axis (bottom) set x2label "Distance [feet]" # title of x2 axis (top) set ylabel "sin meters" # title of y1 axis (left) set y2label "log feet" # title y2 axis (right) set xtics # control major tic marks on the axis set x2tics; set ytics; set y2tics #commands can be separated with semicolons set mytics # control minor tics on the axis, here I add them to the y axis set xrange [0:15] # Range for display on the x1 axis set x2range [0:15.0/0.305] #Expressions are ok. This one converts meters to feet. set yrange [*:*] # The "*" sets the range to auto set y2range [*:*] # Range for the y2 axis set nologscale # or "set logscale x1x2y1y2" #Control logscale, linear scale is the default set nogrid # or "set grid" #Control gridlines, no grid is the default set key outside # or "set nokey" #Control legend and its positions: "top", "bottom", "left" # The following line creates the plot with 4 graph series plot sin(x) axes x1y1, log(x) axes x2y2, "data.dat" using 1:2, \ "data.dat" using 1:3 # Long lines can be split with \ # The third series uses columns 1 and 2 from the file # The fourth plots the 3 column agains the 1st column from the data file.


Home Newbie Guide Some Essential Linux Applications Automating creation of graphs with gnuplot 