Date: 14 Apr 1993 15:47:57 GMT Summary: This is the FAQ (Frequently Answered Questions) list of the comp.graphics.gnuplot newsgroup, which discusses the gnuplot program for plotting 2D - and 3D - graphs. Archive-name: graphics/gnuplot-faq Version: $Header: c:/alex/gwork/RCS/0faq%v 3.38.2.118 1993/04/19 23:29:06 woo Exp woo $ This is the FAQ (Frequently Answered Questions) list of the comp.graphics.gnuplot newsgroup, which discusses the gnuplot program for plotting 2D - and 3D - graphs. Most of the information in this document came from public discussion on comp.graphics.gnuplot; quotations are believed to be in the public domain. Here's a list of the questions. If you are looking for the answer for a specific question, look for the string Qxx: at the beginning of a line, with xx being the question number. Questions: Section 0: Meta - Questions Q0.1: Where do I get this document? Q0.2: Where do I send comments about this document? Section 1: General Information Q1.1: What is gnuplot? Q1.2: How did it come about and why is it called gnuplot? Q1.3: Does gnuplot have anything to do with the FSF and the GNU project? Q1.4: What does gnuplot offer? Q1.5: Is gnuplot suitable for batch processing? Q1.6: Can I run gnuplot on my computer? Section 2: Setting it up Q2.1: What is the current version of gnuplot? Q2.2: Where can I get gnuplot? Q2.3: How do I get gnuplot to compile on my system? Q2.4: What documentation is there, and how do I get it? Section 3: Working with it Q3.1: How do I get help? Q3.2: How do I print out my graphs? Q3.3: How do I include my graphs in ? Section 4: Wanted Features in gnuplot Q4.1: Does gnuplot have hidden line removal? Q4.2: Does gnuplot support boxes? Section 5: Miscellaneous Q5.1: I've found a bug, what do I do? Q5.2: Can I use gnuplot routines for my own programs? Q5.3: What extensions have people made to gnuplot? Where can I get them? Q5.4: Can I do heavy - duty data processing with gnuplot? Q5.5: I have ported gnuplot to another system, or patched it. What do I do? Q5.6: Where can I get a beta version of Gnuplot 3.3? Section 6: Making life easier Q6.1: How do I plot two functions in non - overlapping regions? Q6.2: How do I run my data through a filter before plotting? Q6.3: How do I make it easier to use gnuplot with LaTeX? Q6.4: Why does gnuplot ignore my very small numbers? Section 7: Credits Questions and Answers: Section 0: Meta - Questions. Q0.1: Where do I get this document? This document is posted about once every four weeks to the newsgroups comp.graphics.gnuplot, comp.answers and news.answers. Like many other FAQ's, it is available via anonymous ftp from rtfm.mit.edu [18.172.1.27] from the directory /pub/usenet/news.answers under the Archive-Name: at the top of the article, graphics/gnuplot-faq. Q0.2: Where do I send comments about this document? Send comments, suggestions etc. via e-mail to Thomas Koenig, ig25@rz.uni-karlsruhe.de or ig25@dkauni2.bitnet. Section 1: General Information Q1.1: What is gnuplot? Gnuplot is a command-driven interactive function plotting program. It can be used to plot functions and data points in both two- and three- dimensional plots in many different formats, and will accomodate many of the needs of today's scientists for graphic data representation. Gnuplot is copyrighted, but freely distributable; you don't have to pay for it. Q1.2: How did it come about and why is it called gnuplot? The authors of gnuplot are: Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo and many others. The following quote comes from Thomas Williams: I was taking a differential equation class and Colin was taking Electromagnetics, we both thought it'd be helpful to visualize the mathematics behind them. We were both working as sys admin for an EE VLSI lab, so we had the graphics terminals and the time to do some coding. The posting was better recieved than we expected, and prompted us to add some, albeit lame, support for file data. Any reference to GNUplot is incorrect. The real name of the program is "gnuplot". You see people use "Gnuplot" quite a bit because many of us have an aversion to starting a sentence with a lower case letter, even in the case of proper nouns and titles. Gnuplot is not related to the GNU project or the FSF in any but the most peripheral sense. Our software was designed completely independently and the name "gnuplot" was actually a compromise. I wanted to call it "llamaplot" and Colin wanted to call it "nplot." We agreed that "newplot" was acceptable but, we then discovered that there was an absolutely ghastly pascal program of that name that the Computer Science Dept. occasionally used. I decided that "gnuplot" would make a nice pun and after a fashion Colin agreed. Q1.3: Does gnuplot have anything to do with the FSF and the GNU project? No. Gnuplot is not covered by the General Public License, either. Q1.4: What does gnuplot offer? - Plotting of two - dimensional functions and data points in many different styles (points, lines, error bars) - plotting of three - dimensional data points and surfaces in many different styles (contour plot, mesh). - support for complex arithmetic - self - defined functions - support for a large number of operating systems, graphics file formats and devices - extensive online help - labels for title, axes, data points - command line editing and history on most platforms Q1.5: Is gnuplot suitable for batch processing? Yes. You can read in files from the command line, or you can redirect your standard input to read from a file. Both data and command files can be generated automatically, from data aquisition programs or whatever else you use. Q1.6: Can I run gnuplot on my computer? Gnuplot is available for a number of platforms. These are: UNIX (X11 and NeXTSTEP), VAX/VMS, OS/2, MS-DOS, Amiga, MS-Windows and OS-9/68k. Modifications for Macintosh (Think - C 3.0) exist and are part of the gpcontrib distribution; they are untested. Modifications for NEC 8901 are said to exist (where?). A version for the Atari ST exists at atari.archive.umich.edu, but is unstable. Section 2: Setting it up Q2.1: What is the current version of gnuplot? The current version of gnuplot is 3.2, patchlevel 2. Version 3.3 is currently in beta test. Q2.2: Where can I get gnuplot? The official distribution site for the gnuplot source is dartmouth.edu [129.170.16.4], the file is called /pub/gnuplot/gnuplot.3.2.tar.Z. Official mirrors of that distribution are (for Australia) monu1.cc.monash.edu.au [130.194.1.101] and (for Europe) irisa.irisa.fr [131.254.2.3]. You can also get it from your friendly neighbourhood comp.sources.misc archive. MS-DOS binaries are available from oak.oakland.edu (North America) [141.210.10.117] as pub/msdos/plot/gnuplt32.zip, garbo.uwasa.fi (Europe) [128.214.87.1] as /pc/plot/gnup32.zip and archie.au (Australia) [139.130.4.6] as micros/pc/oak/plot/gnuplt32.zip. An version for MS-DOS with at least a 386 is to be found at simtel-20 and its numerous mirrors, for example wuarchive.wustl.edu:/mirrors/msdos/plot/gplot386.zip [128.252.135.4] sun0.urz.uni-heidelberg.de:/pub/msdos/simtel/plot/gplot386.zip [129.206.100.126] isfs.kuis.kyoto-u.ac.jp:/mirrors/simtel20.msdos/plot [130.54.20.1] OS/2 2.0 binaries are at ftp-os2.nmsu.edu [128.123.35.151], in /pub/os2/unix/gnu/gnuplt32.zip . Amiga sources and binaries are available from ux1.cso.uiuc.edu [128.174.5.59] as /pub/amiga/fish/f7/ff701/gnuplot.lzh. The NeXTSTEP frontend can be found at sonata.cc.purdue.edu and cs.orst.edu. An MS-Windows Version is available, among other servers, from ftp.cica.indiana.edu:/pub/pc/win3/uploads/DEC92/wgnuplot.zip. Please note that wgpt3382.zip is an extremely early alpha version and should not be used. A version for OS-9/68K can be found at cabrales.cs.wisc.edu [128.105.36.20] as /pub/OSK/GRAPHICS/gnuplot32x.tar.Z; it includes both X-Windows and non - X-windows versions. People without ftp access can use an ftp-mail server; send mail to bitftp@pucc.bitnet (for BITNET only) or ftpmail@decwrl.dec.com with the word 'help' in the mail body for more information. It is a good idea to look for a nearby ftp site when downloading things. You can use archie for this. See if an archie client is installed at your system (by simply typing archie at the command prompt), or send mail to archie@sura.net with the word 'help' in both the subject line and the body of the mail. However, be aware that the version you find at a near ftp site may well be out of date; check the last modification date and the number of bytes against the newest release at one of the official servers. Q2.3: How do I get gnuplot to compile on my system? As you would any other installation. Read the files README and README.Install, edit the Makefile according to taste, and run make or whatever is suitable for your operating system. If you get a complaint about a missing file libplot.a or something similar when building gnuplot for x11, remove -DUNIXPLOT from the TERMFLAGS= line, remove -lplot from the LIBS= line and run again. If you are making x11 on a sun, type 'make x11_sun'. Q2.4: What documentation is there, and how do I get it? The documentation is included in the source distribution. Look at the docs subdirectory, where you'll find - a unix man page, which says how to start gnuplot - a help file, which also can be printed as a manual - a tutorial on using gnuplot with latex - a quick reference summary sheet for TeX only Postscript copies of the documentation can be ftp'd from dartmouth.edu, in pub/gnuplot, as manual.ps.Z and tutorial.ps.Z Section 3: Working with it Q3.1: How do I get help? Give the 'help' command at the initial prompt. After that, keep looking through the keywords. Good starting points are 'plot' and 'set'. Read the manual, if you have it. Ask your colleagues, the system administrator or the person who set up gnuplot. Post a question to comp.graphics.gnuplot or send mail to the gatewayed mailing list info-gnuplot@dartmouth.edu. If you want to subscribe to the mailing list, send mail to info-gnuplot-request@dartmouth.edu, but please don't do this if you can get comp.graphics.gnuplot directly. If you pose a question there, it is considered good form to solicit e-mail replies and post a summary. Q3.2: How do I print out my graphs? The kind of output produced is determined by the 'set terminal' command; for example, 'set terminal postscript' will produce the graph in postscript format. Output can be redirected using the 'set output' command. As an example, the following prints out a graph of sin(x) on a UNIX machine running X - Windows. gnuplot> plot [-6:6] sin(x) gnuplot> set terminal postscript Terminal type set to 'postscript' Options are 'landscape monochrome "Courier" 14' gnuplot> set output "sin.ps" gnuplot> replot gnuplot> set output # set output back to default gnuplot> set terminal x11 # dto. for terminal type gnuplot> ! lp -ops sin.ps # print ps - File (site dependent) request id is lprint-3433 (standard input) lp: printed file sin.ps on fg20.rz.uni-karlsruhe.de (5068 Byte) ! gnuplot> Q3.3: How do I include my graphs in ? This depends on the kind of word processor you use. Many word processors can use encapsulated postscript for graphs. This can be generated by the 'set terminal postscript eps' command. Most MS-DOS word processors understand HPGL (terminal type hpgl). With TeX, it depends on what you use to print your dvi files. If you use dvips or dvi2ps, you can use encapsulated postscript. For emtex (popular for MS-DOS), you can use emtex, otherwise use the latex terminal type, which generates a picture environment. If nothing else helps, try using the pgm or ppm format and converting it to a bitmap format your favourite word processor can understand. An invaluable tool for this is Jeff Poskanzer's PPMPLUS package. Section 4: Wanted Features in gnuplot Q4.1: Does gnuplot have hidden line removal? Version 3.3 supports hidden line removal on all platforms except MS-DOS. If someone can solve the 64K DGROUP memory problem, it would support hidden line removal there as well. Version 3.2 supports hidden line removal. Q4.2: Does gnuplot support boxes? Version 3.3 will. Section 5: Miscellaneous Q5.1: I've found a bug, what do I do? First, try to see wether it actually is a bug, or wether it is a feature which may be turned off by some obscure set - command. If you have a fairly general sort of bug report, posting to comp.graphics.gnuplot is probably the way to go. If you have investigated a problem in detail, especially if you have a context diff that fixes the problem, please e-email a report to bug-gnuplot@dartmouth.edu. The bug-gnuplot list is for reporting and collecting bug fixes, the comp.graphics.gnuplot mailing list will be more help for finding work arounds or actually solving gnuplot related problems. If you do send in a bug report, be sure and include the version of gnuplot (including patchlevel), terminal driver, operating system, an exact description of the bug and input which can reproduce the bug. Also, any context diffs should be referenced against the latest official version of gnuplot if at all possible. Q5.2: Can I use gnuplot routines for my own programs? Yes. John Campbell has written gplotlib, a version of gnuplot as C subroutines callable from a C program. This is available as gplotlib.tar.Z on the machine ftp.nau.edu in the directory /pub/gplotlib.tar.Z. It is also included in the gpcontrib distribution in the campbell subdirectory. Q5.3: What extensions have people made to gnuplot? Where can I get them? Extensions have been put into the file gpcontrib.tar.Z, which will officialy be available with the 3.3 release. If you are lucky, you will be able to download it from rsm2.physics.uiuc.edu:~ftp/pub/gnuplot/gpcontrib.tar.Z. Its contains the following subdirectories: byrne subdirectory: From: "Margaret R. Byrne" Subject: congp3d3 preprocessor to draw contour plots on irregular regions. clark subdirectory: From: Michael Clark Subject: data filtering: adds point_skip & point_offs hanna subdirectory: From: gregor@kafka.saic.com (gregg hanna) Subject: x11-library mode, gnulib_x11.[c,h], xlibtest.c,makefile.xlib yamamoto subdirectory: From: "NOBORU YAMAMOTO " Subject: Re: gnuplot on Apple Macintosh, "diff -c" of version 3.0 russo subdirectory: From: russo@rudedog.nrl.navy.mil Subject: gnuplotio bidirectional pipe C-library woo subdirectory: From: "Alex Woo" Subject: two additional title lines and fixes to errorbar style green subdirectory: From: Roque Donizete de Oliveira Subject: Postscript greek symbols in gnuplot, new prologue Q5.4: Can I do heavy - duty data processing with gnuplot? Gnuplot alone is not suited very well for this. One thing you might try is fudgit, an interactive multi-purpose fitting program written by Martin-D. Lacasse. It can use gnpulot as its graphics back end and is available from ftp.physics.mcgill.ca:/pub/Fudgit/fudgit_2.27.tar.Z [132.206.9.13], and from the main Linux server, tsx-11.mit.edu [18.172.1.2] and its numerous mirrors around the world. Versions are available for AIX, HP-UX, IRIX 4, Linux, NeXT, Sun3, Sun4 and Ultrix. You might also want to look at the applications developed by the Software Tools Group (STG) at the National Center for Supercomputing Applications. Ftp to ftp.ncsa.uiuc.edu [141.142.20.50] and get the file README.BROCHURE for more information. Q5.5: I have ported gnuplot to another system, or patched it. What do I do? If your patch is small, mail it to bug-gnuplot@dartmouth.edu, with a thorough description of what the patch is supposed to do, which version of gnuplot it is relative to, etc. Please don't mail it to the FAQ maintainer. If your modifications are extensive (such as a port to another system), upload your modifications to dartmouth.edu:/pub/dropoff. Please drop a note to David.Kotz@dartmouth.edu, the maintainer of the gnuplot subdirectory there, plus a note to bug-gnuplot@dartmouth.edu. Q5.6: Where can I get a beta version of Gnuplot 3.3? You should be able to get it from one of the following sites (not necessarily all of them): sun.soe.clarkson.edu:~ftp/submit/gnuplot3_3b9.tar.Z cygnus.com:~ftp/incoming/gnuplot3_3b9.tar.Z rsm2.physics.uiuc.edu:~ftp/pub/gnuplot/gnuplot3_3b9.tar.Z (where the 3_3b9 part is subject to change). Section 6: Making life easier Q6.1: How do I plot two functions in non - overlapping regions? Use a parametric plot. An example: set parametric a=1 b=3 c=2 d=4 x1(t) = a+(b-a)*t x2(t) = c+(d-c)*t f1(x) = sin(x) f2(x) = x**2/8 plot [t=0:1] x1(t),f1(x1(t)) title "f1", x2(t), f2(x2(t)) title "f2" Q6.2: How do I run my data through a filter before plotting? If your system supports the popen() - function, as UNIX does, you should be able to run the output through another process such as a short awk program (use the "help plot datafile" command for an example). Unfortunately, in 3.2, there is a rather short limitation on the maximum argument length, so your command line may be truncuated (usually, this will mean that awk cannot find the filename). Also, you may need to escape the $ - characters in your awk programs. Version 3.3 will include the thru - keyword for the plot command for running datafiles through a Gnuplot - defined function. Q6.3: How do I make it easier to use gnuplot with LaTeX? There is a set of latex macros and shell scripts that are meant to make your life easier when using gnuplot with LaTeX. This package can be found on dartmouth.edu [129.170.16.4] in pub/gnuplot/latex.shar, by David Kotz. For example, the program "plotskel" can turn a gnuplot-output file plot.tex into a skeleton file skel.tex, that has the same size as the original plot but contains no graph. With the right macros, the skeleton can be used for preliminary latex passes, reserving the full graph for later passes, saving tremendous amounts of time. Q6.4: Why does gnuplot ignore my very small numbers? Gnuplot treats all numbers less than 1e-08 as zero, by default. Thus, if you are trying to plot a collection of very small numbers, they may be plotted as zero. Worse, if you're plotting on a log scale, they will be off scale. Or, if the whole set of numbers is "zero", your range may be considered empty: gnuplot> plot 'test1' Warning: empty y range [4.047000e-19:3.000000e-11], adjusting to [-1:1] y_min should not equal y_max! gnuplot> set yrange [4.e-15:3.0e-11] gnuplot> plot 'test1' y range is less than `zero` The solution is to change gnuplot's idea of "zero": set zero 1e-20 For more information, help set zero Section 7: Credits This list was initially compiled by John Fletcher with contributions from Russell Lang, John Campbell, David Kotz, Rob Cunningham, Dan Lewart and Alex Woo. Reworked by Thomas Koenig from a draft by Alex Woo, with corrections and additions from Alex Woo, John Campbell, Russell Lang, and David Kotz. -- Thomas Koenig, ig25@rz.uni-karlsruhe.de, ig25@dkauni2.bitnet The joy of engineering is to find a straight line on a double logarithmic diagram.