
Archive-name: graphics/gnuplot-faq
Version: Wed Jun 29 04:23:04 MESZ 1994
Posting-frequency: every 14 days
X-Url: http://fg20.rz.uni-karlsruhe.de/~ig25/gnuplot-faq

   comp.graphics.gnuplot
   
            COMP.GRAPHICS.GNUPLOT FAQ (FREQUENT ANSWERED QUESTIONS)
                                       
   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 Qx.x: at the beginning of a
   line, with x.x being the question number. Sections in this FAQ are
     * 0. Meta - Questions
     * 1. General Information
     * 2. Setting it up
     * 3. Working with it
     * 4. Wanted features
     * 5. Miscellaneous
     * 6. Making life easier
     * 7. Known problems
     * 8. Credits
       
   
     _________________________________________________________________
   
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 <word processor>?
       
  SECTION 4: WANTED FEATURES
     * Q4.1: Does gnuplot have hidden line removal?
     * Q4.2: Does gnuplot support bar-charts/histograms/boxes?
     * Q4.3: Does gnuplot support multiple y-axes on a single plot?
     * Q4.4: Can I put multiple plots on a single page?
     * Q4.5: Can I put both data files and commands into a single file?
     * Q4.6: Can I put Greek letters and super/subscripts into my labels?
     * Q4.7 Can I do 1:1 scaling of axes?
     * Q4.8: Can I put tic marks for x and y axes into 3d plots?
     * Q4.9: Does gnuplot support a driver for ?
     * Q4.10: Can I put different text sizes into my plots?
     * Q4.12: How do I skip data points?
       
  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?
       
  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: How do I save and restore my settings?
     * Q6.5: How do I plot lines (not grids) using splot?
     * Q6.6: How do I plot a function f(x,y) which is bounded by other
       functions in the x-y plain?
     * Q6.7: How do I get rid of <feature in a plot>?
     * Q6.8: How do I call gnuplot from my own programs ?
       
  SECTION 7: KNOWN PROBLEMS
     * Q7.1: Gnuplot is not plotting any points under X11! How come?
     * Q7.2: My isoline data generated by a Fortran program is not
       handled correctly. What can I do?
     * Q7.3: Why does gnuplot ignore my very small numbers?
     * Q7.4: Gnuplot is plotting nothing when run via gnuplot <filename>!
       What can I do?
     * Q7.5: My formulas are giving me nonsense results! What's going on?
       
  SECTION 8: CREDITS
  
  SECTION 0: META - QUESTIONS.
  
    Q0.1: Where do I get this document?
          This document is posted about once every two weeks to the
          newsgroups comp.graphics.gnuplot, comp.answers and
          news.answers. Like many other FAQ's, its newest (plaintext)
          version is available via anonymous ftp from
          ftp://rtfm.mit.edu/pub/usenet/news.answers/graphics/gnuplot-faq
          .
          
          If you have access to the WWW, you can get the newest version
          of this document from
          http://fg20.rz.uni-karlsruhe.de/~ig25/gnuplot-faq.html
          
   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 accommodate 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 received 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?
          Gnuplot is neither written nor maintained by the FSF. It is not
          covered by the General Public License, either.
          
          However, the FSF has decided to distribute gnuplot as part of
          the GNU system, because it is useful, redistributable software.
          
   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 on-line 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
          acquisition 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,
          OS-9/68k, Atari ST and the Macintosh. Modifications for NEC
          PC-9801 are said to exist (where?).
          
   
     _________________________________________________________________
   
  SECTION 2: SETTING IT UP
  
    Q2.1: What is the current version of gnuplot?
          The current version of gnuplot is 3.5, which is a bugfix
          release over 3.4.
          
   Q2.2: Where can I get gnuplot?
          [This information may be dated, due to the release of gnuplot
          3.5. Please report any inaccuracies, if you find them. Ed.]
          
          All of the later addresses refer to ftp sites. Please note that
          it is preferable for you to use the symbolic name, rather than
          the IP address given in brackets, because that address is much
          more subject to change.
          
          The official distribution site for the gnuplot source is
          ftp.dartmouth.edu [129.170.16.4], the file is called
          /pub/gnuplot/gnuplot3.5.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.254.2]. You can also get it from your friendly
          neighbourhood comp.sources.misc archive.
          
          MS-DOS and MS-Windows binaries are available from
          
          + oak.oakland.edu (North America) [141.210.10.117] as
            pub/msdos/plot/gpt35*.zip,
          + garbo.uwasa.fi (Europe) [128.214.87.1] as /pc/plot/gpt35*.zip
            and
          + archie.au (Australia) [139.130.4.6] as
            micros/pc/oak/plot/gpt35*.zip.
            
   The files are: gpt35doc.zip, gpt35exe.zip, gpt35src.zip and
          gpt35win.zip.
          
          There is a special MS-DOS version for 386 or better processors;
          it is available from the official gnuplot sites as DOS34.zip.
          
          OS/2 2.x binaries are at ftp-os2.nmsu.edu [128.123.35.151], in
          /os2/2.x/unix/gnuplt35.zip.
          
          Amiga sources and binaries are available from ftp.wustl.edu
          [128.252.135.4] as /pub/aminet/util/gnu/gnuplot-3.5.lha; there
          are numerous mirrors of this distribution, for example
          ftp.uni-kl.de, oes.orst.edu or ftp.luth.se.
          
          The NeXTSTEP front end can be found at sonata.cc.purdue.edu and
          cs.orst.edu.
          
          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.
          
          A version of gnuplot for the Mac can reportedly be found on
          archive.umich.edu and sumex-aim.stanford.edu, directories
          unknown.
          
          Executable files, plus documentation in Japanese, exist for the
          X680x0 on ftp.csis.oita-u.ac.jp [133.37.56.112] in
          /pub/x68k/fj.binaries.x68000/vol2/gnuplt35.lzh.
          
          People without ftp access can use an ftp-mail server; send a
          message saying 'help' to bitftp@pucc.bitnet (for BITNET only)
          or to ftpmail@ftp.dartmouth.edu.
          
          For a uuencoded copy of the the gnuplot sources (compressed tar
          file), send this as the body of a message to
          ftpmail@ftp.dartmouth.edu:
          

        open
        cd pub/gnuplot
        mode binary
        get gnuplot3.5.tar.Z
        quit

   If you have some problem, you might need to stick
          

        reply-to  <your-email-address-here>

   before all the above.
          
          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
          DTBS= 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
          ftp.dartmouth.edu, in pub/gnuplot, as manual.ps.Z and
          tutorial.ps.Z
          
          A Chinese translation of the manual can be found on
          ftp://servers.nctu.edu.tw/misc/environment/NCTU_EV/classnote/gn
          uplot.ps.gz .
          
   
     _________________________________________________________________
   
  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.
          
          Look through the demo subdirectory; it should give you some
          ideas.
          
          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        # ditto 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 <word processor>?
          Basically, you save your plot to a file in a format your word
          processor can understand (using "set term" and "set output",
          see above), and then you read in the plot from your word
          processor.
          
          Details depend on the kind of word processor you use; use "set
          term" to get a list of available file formats.
          
          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 Jef Poskanzer's
          PBMPLUS package.
          
          The PBMPLUS package is available in the contrib distribution
          for Xwindows. The original site for this is ftp.x.org:/contrib,
          there are many mirrors, e.g.
          ftp.th-darmstadt.de:/pub/X11/contrib or
          sunsite.unc.edu:/pub/X11/contrib.
          
          The most recent release of pbm by the author is dated December
          91 and is called pbmplus10dec91.tar.Z
          
          There is new version including lots of patches from the net
          that is not maintained by the author called netpbm, with the
          newest version called netpbm-7dec1993.tar.gz.
          
          Check archie (see Q2.2 ) for an archive site near you.
          
   
     _________________________________________________________________
   
  SECTION 4: WANTED FEATURES
  
    Q4.1: Does gnuplot have hidden line removal?
          Version 3.5 supports hidden line removal on all platforms
          except MS-DOS; use the command
          

        set hidden3d

   If someone can solve the 64K DGROUP memory problem, gnuplot would
          support hidden line removal on MS-DOS as well. Version 3.2
          supports limited hidden line removal.
          
   Q4.2: Does gnuplot support bar-charts/histograms/boxes?
          As of version 3.4, it does.
          
   Q4.3: Does gnuplot support multiple y-axes on a single plot?
          Yes, with two unofficial mods, multiplot.shar and borders.shar.
          Send mail to woo@playfair.stanford.edu.
          
   Q4.4: Can I put multiple plots on a single page?
          Yes, with the multiplot.shar mod. If you are using PostScript
          output, check out mpage, which can be ftp'd from
          ftp.eng.umd.edu:pub/misc/mpage-2.tar.Z
          
   Q4.5: Can I put both data files and commands into a single file?
          This is a feature which will probably be in gnuplot 3.6, which
          is in early development. Ask for the mixed.shar patch from
          woo@playfair.stanford.edu.
          
   Q4.6: Can I put Greek letters and super/subscripts into my labels?
          You might try using the LaTeX terminal type and putting text
          like \alpha_{3} into it.
          
          If you use PostScript output, you might find something in the
          Green subdirectory of the gpcontrb file (see Q5.3).
          
          David Denholm has written a PostScript terminal which allows
          for super/and subscripts, such as a^x or { Symbol a }. Ftp to
          sotona.phys.soton.ac.uk[152.78.192.42] and get divpost34.trm.
          To install it, copy it over ~gnuplot/term/post.trm and
          recompile. A never version is mattpost.trm, rewritten by Matt
          Heffron.
          
   Q4.7: Can I do 1:1 scaling of axes?
          Not easily.
          
   Q4.8: Can I put tic marks for x and y axes into 3d plots?
          In version 3.5, you can; use the "with boxes" option.
          
   Q4.9: Does gnuplot support a driver for ?
          To see a list of the available graphic drivers for your
          installation of gnuplot, type "set term".
          
          Some graphics drivers are included in the normal distribution,
          but are uncommented by default. If you want to use them, you'll
          have to change ~gnuplot/term.h.
          
   Q4.10: Can I put different text sizes into my plots?
          If you use PostScript output, you can use Dave Denholm's and
          Matt Heffron's updated PostScript driver,
          /sotona.phys.soton.ac.uk:/mattpost.trm (see also Q4.6 ).
          
   Q4.11 How do I modify gnuplot, and apply 'patches'?  For this, you
   will need to recompile gnuplot.
   
   Modifications people make are either done by reaplacing files, such as
   terminal drivers, or by 'patching'. If a file is a replacement, it
   will probably tell you in its README or in the lines at the beginning.
   
   
   To patch a file, you need Larry Wall's patch utility. On many UNIX
   systems, it is already installed; do a man patch to check. If it
   isn't, you'll have to get it; it can be found whereever GNU software
   is archived.
   
   Q4.12 How do I skip data points?     By specifying ? as a data value,
   as in

        1 2
        2 3
        3 ?
        4 5

   
     _________________________________________________________________
   
  SECTION 5: MISCELLANEOUS
  
    Q5.1: I've found a bug, what do I do?
          First, try to see whether it actually is a bug, or whether it
          is a feature which may be turned off by some obscure set -
          command.
          
          Next, see wether you have an old version of gnuplot; if you do,
          chances are the bug has been fixed in a newer release.
          
          If, after checking these things, you still are convinced that
          there is a bug, proceed as follows. 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 newsgroup 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. This library has been updated to be
          compatible with version 3.5. Ask woo@playfair.stanford.edu.
          
   Q5.3: What extensions have people made to gnuplot? Where can I get
          them?
          [A new gpcontrb has been put up. Unfortunately, I haven't had
          a chance to check it out yet, so this information is out of
          date. Expect something in the next couple of days. TK] 
          
          Extensions have been put into the file gpcontrb.zip, which is
          available with the 3.5 release, from ftp.dartmouth.edu.
          
          Note that it has a size of 4.3 megabytes.
          
          The old version contained the following directories:
          
          bigler subdirectory:
          From: bigler@cicg-calcul.grenet.fr
          Subject: Multiple plots from a Fortran program
          budelsky subdirectory:
          From: budelsky@haegar.ikp.uni-koeln.de
          Subject: This is the information file for porting gnuplot 3.2
          to OS-9/68000
          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
          clift subdirectory:
          From: ssclift@neumann.uwaterloo.ca (Simon Clift)
          Subject: Re: Running gnuplot from Fortran, (and C)
          green subdirectory:
          From: Roque Donizete de Oliveira
          Subject: PostScript Greek symbols in gnuplot, new prologue
          hanna subdirectory:
          From: gregor@kafka.saic.com (gregg hanna)
          Subject: x11-library mode, gnulib_x11.[c,h],
          xlibtest.c,makefile.xlib
          klosowski subdirectory:
          From: Carsten Steger
          Subject: New file "klein.dat"
          From: przemek@rrdstrad.nist.gov (Przemek Klosowski)
          Subject: calling gnuplot from Fortran
          kocaturk subdirectory:
          From: mustafa@seas.smu.edu (Mustafa Kocaturk)
          Subject: Histograms in gnuplot
          richardson subdirectory:
          From: amr@chiton.ucsd.edu (Tony Richardson)
          Subject: Programmatic control of gnuplot from Unix
          rosendorf subdirectory:
          From: prf@jprix.che.wisc.edu
          Subject: Multiple plots on a page
          vanzandt subdirectory:
          From: James R. Van Zandt
          Subject: Spline generating program
          white subdirectory:
          From: gwhite@bionet.bio.dfo.ca
          Subject: gnuplot 3.2 for Titan 3000
          woo subdirectory:
          From: "Alex Woo"
          Subject: two additional title lines and fixes to errorbar style
          
          yamamoto subdirectory:
          From: "NOBORU YAMAMOTO "
          Subject: Re: gnuplot on Apple Macintosh, "diff -c" of version
          3.0
          (now includes binaries)
          castro subdirectory:
          From: maurice@bruce.cs.monash.edu.au (Maurice Castro)
          Subject: Controlling gnuplot from another Windows program
          grammes subdirectory:
          From: ph12hucg@rz.uni-sb.de (Carsten Grammes)
          Subject: Nonlinear least squares fit mechanism
          henke subdirectory:
          From: mgr@asgard.bo.open.de (Lars Hanke)
          Subject: Re: Changes to gnuplot 3.3b9
          walton subdirectory:
          From: dwalton@athena.mit.edu (Dave Walton)
          Subject: Inter Process Communication stuff
          
   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
          (isaac@frodo.physics.mcgill.ca). It can use gnuplot as its
          graphics back end and is available from ftp.physics.mcgill.ca
          in /pub/Fudgit/fudgit_2.33.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 as
          /pub/linux/sources/usr.bin/fudgit-2.33.tar.z. Versions are
          available for AIX, Data General, HP-UX, IRIX 4, Linux, NeXT,
          Sun3, Sun4, Ultrix, OS/2 and MS-DOS. The MS-DOS version is
          available on simtel20 mirrors (simtel20 itself has closed down)
          in the "math" subdirectory as fudg_231.zip.
          
          Carsten Grammes has written a fitting program which goes
          together with gnuplot; it is called gnufit and is available
          from the official gnuplot sites, as the files gnufit12.info,
          gnufit12.tar.gz (source) and gft12dos.zip (MS-DOS).
          
          Michael Courtney has written a program called lsqrft, which
          uses the Levenberg - Marquardt - Algorithm for fitting data to
          a function. It is avialiable from ftp.cdrom.com as
          /pub/os2/2_x/unix/lsqrft13.zip; sources, which should compile
          on Unix, and executables for MS-DOS and OS/2 2.x are included.
          There is an interface to the OS/2 presentation manager.
          
          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
          ftp.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.
          
   
     _________________________________________________________________
   
  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 truncated (usually, this will mean that awk
          cannot find the filename). Also, you may need to escape the $ -
          characters in your awk programs.
          
          As of version 3.4, gnuplot includes the thru - keyword for the
          plot command for running data files through a gnuplot - defined
          function.
          
          You can also get divhack.trm from
          sotona.phys.soton.ac.uk[152.78.192.42] via anonymous ftp. It
          allows expressions of the kind
          

        gnuplot> plot "datafile" using A:B:C

   where A,B,C,... are now either a column number, as usual, or an
          arbitrary expression enclosed in ()'s, and using $1,$2,etc to
          access the data columns.
          
   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 ftp.dartmouth.edu [129.170.16.54] 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: How do I save and restore my settings?
          Use the "save" and "load" commands for this; see "help save"
          and "help load" for details.
          
   Q6.5: How do I plot lines (not grids) using splot?
          If the data in a data file for splot is arranged in such a way
          that each one has the same number of data points (using blank
          lines as delimiters, as usual), splot will plot the data with a
          grid. If you want to plot just lines, use a different number of
          data entries (you can do this by doubling the last data point,
          for example). Don't forget to set parametric mode, of course.
          
   Q6.6: How do I plot a function f(x,y) which is bounded by other
          functions in the x-y plain?
          An example:
          

        f(x,y) = x**2 + y **2
        x(u) = 3*u
        yu(x) = x**2
        yl(x) = -x**2
        set parametric
        set cont
        splot [0:1] [0:1] u,yl(x(u))+(yu(x(u)) - yl(x(u)))*v,\
        f(x(u), (yu(x(u)) - yl(x(u)))*v)

   Q6.7: How do I get rid of <feature in a plot>?
          Usually, there is a set command to do this; do a
          

        gnuplot> ?set no

   for a short overview.
          
   Q6.8: How do I call gnuplot from my own programs?
          Here's code which works for a UNIX system, using (efficient)
          named pipes.
          

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <unistd.h>

#define PANIC(a) do { \
                perror(a); \
                if (temp_name) unlink(temp_name);\
                exit(1);\
        } while(0)

int main() {
    FILE *command,*data;
    char *temp_name;
    double a,b;
    int i;

    if ((temp_name = tmpnam((char *) 0)) == 0) PANIC("tmpnam failed");
    if(mkfifo(temp_name, S_IRUSR | S_IWUSR) != 0) PANIC("mkfifo failed");
    command = popen("gnuplot","w");
    fprintf(command,"plot \"%s\" with lines\n",temp_name); fflush(command);
    data = fopen(temp_name,"w");
    for (i=0; i<20; i++) {
        a = i/10.0;
        b = sin(a);
        fprintf(data,"%f %f\n",a,b);
    }
    fclose(data);
    fprintf(stderr,"press enter to continue..."); fflush(stderr);
    getchar();

    fprintf(command,"plot \"%s\" with lines\n",temp_name); fflush(command);
    data = fopen(temp_name,"w");
    for (i=0; i<20; i++) {
        a = i/10.0;
        b = cos(a);
        fprintf(data,"%f %f\n",a,b);
    }
    fclose(data);
    fprintf(stderr,"press enter to continue..."); fflush(stderr);
    getchar();
    fclose(command);
    unlink(temp_name);
    return 0;
}

   Here's code for OS/2, again using named pipes; I'm unable to check
          this out myself. This code is care of fearick@physci.uct.ac.za
          (Roger Fearick).
          

#include <stdio.h>
#define INCL_DOS
#define INCL_DOSPROCESS
#define INCL_DOSNMPIPES
#include <os2.h>

main()
    {
    HPIPE hpipe ;
    FILE *hfile, *hgnu ;
        /* create a named pipe. Use NP_WAIT so that DosConnect...
           blocks until client (gnuplot) opens, and client reads
           are blocked until data is available */
    DosCreateNPipe( "\\pipe\\gtemp",
                    &hpipe,
                    NP_ACCESS_OUTBOUND,
                    NP_WAIT|NP_TYPE_BYTE|1,
                    256,
                    256,
                    -1 ) ;
        /* use stream i/o */
    hfile = fdopen( hpipe, "w" ) ;

        /* start gnuplot; use unbuffered writes so we don't need to
           flush buffer after a command */
    hgnu = popen( "gnuplot", "w" ) ;
    setvbuf( hgnu, NULL, _IONBF, 0 ) ;

        /* plot a set of data */

    fprintf( hgnu, "plot '/pipe/gtemp'\n" ) ;  /* issue plot command */
    DosConnectNPipe( hpipe ) ;              /* wait until 'file' opened */
    fprintf( hfile, "1 1\n" ) ;             /* write data to 'file' */
    fprintf( hfile, "2 2\n" ) ;
    fprintf( hfile, "3 3\n" ) ;
    fprintf( hfile, "4 4\n" ) ;
    fflush( hfile ) ;                       /* flush buffer forces read */
    DosSleep( 500 ) ;                       /* allow gnuplot to catch up */
    DosDisConnectNPipe( hpipe ) ;           /* disconnect this session */
    fprintf( hgnu, "pause -1\n" ) ;         /* admire plot */

        /* plot another set of data */

    fprintf( hgnu, "plot '/pipe/gtemp'\n" ) ;
    DosConnectNPipe( hpipe ) ;
    fprintf( hfile, "1 4\n" ) ;
    fprintf( hfile, "2 3\n" ) ;
    fprintf( hfile, "3 2\n" ) ;
    fprintf( hfile, "4 1\n" ) ;
    fflush( hfile ) ;
    DosSleep( 500 ) ;
    DosDisConnectNPipe( hpipe ) ;
    fprintf( hgnu, "pause -1\n" ) ;

    DosClose( hpipe ) ;
    pclose( hgnu ) ;
    }

   ;
          
   
     _________________________________________________________________
   
  SECTION 7: KNOWN PROBLEMS
  
    Q7.1: Gnuplot is not plotting any points under X11! How come?
          Very probably, you still are using an old version of
          gnuplot_x11. Remove that, then do a full installation.
          
          On VMS, you need to make several symbols:
          

        $ gnuplot_x11 :== $disk:[directory]gnuplot_x11
        $ gnuplot :== $disk:[directory]gnuplot.exe
        $ def/job GNUPLOT$HELP disk:[directory]gnuplot.hlb

   Then run gnuplot from your command line, and use
          

        gnuplot> set term x11

   Q7.2: My isoline data generated by a Fortran program is not handled
          correctly. What can I do?
          One known cause for this is the use of list - directed output
          (as in WRITE(10,*) for generating blank lines. Fortran uses ASA
          carriage control characters, and for list - directed output
          this results in a space being output before the newline.
          Gnuplot does not like this. The solution is to generate blank
          lines using formatted output, as in WRITE(10,'()'). If you use
          carriage return files in VMS Fortran, you may have to open the
          file with OPEN(...,CARRIAGECONTROL='DTST') or convert it using
          the DECUS utility ATTRIB.EXE:
          

        VMS> ATTRIB/RATTRIB=IMPDTED FOR010.DAT

   Q7.3: 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.047e-19:3e-11], adjusting to [-1:1]
        gnuplot> set yrange [4e-19:3e-11]
        gnuplot> plot 'test1'
                     ^
         y range is less than `zero`

   The solution is to change gnuplot's idea of "zero":
          

        gnuplot> set zero 1e-20

   For more information,
          

        gnuplot> help set zero

   Q7.4: Gnuplot is plotting nothing when run via gnuplot <filename>!
          What can I do?
          Put a pause -1 after the plot command in the file.
          
   Q7.5: My formulas are giving me nonsense results! What's going on?
          Gnuplot does integer, and not floating point, arithmetic on
          integer expressions. For example, the expression 1/3 evaluates
          to zero. If you want floating point expressions, supply
          trailing dots for your floating point numbers. Example:
          

        gnuplot> print 1/3
                0
        gnuplot> print 1./3.
                0.333333

   This way of evaluating integer expressions is shared by both C and
          Fortran.
          
   
     _________________________________________________________________
   
   Section 8: Credits
   
  SECTION 8: CREDITS
  
   This list was initially compiled by John Fletcher with contributions
   from Russell Lang, John Campbell, David Kotz, Rob Cunningham, Daniel
   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, David Kotz and many corrections from Daniel Lewart; Axel
   Eble and Jutta Zimmermann helped with the conversion to HTML.
   
   
     _________________________________________________________________
   
    Thomas Koenig, ig25@rz.uni-karlsruhe.de, 1994-03-28
-- 
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.
