Linux Know-How 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 old-fashioned as gnuplot may look, it can be quite handy if you want to periodically re-generate 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 re-used 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 x-y 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 |