plotutils Package
      The GNU plotutils package contains software
      for both programmers and technical users.  Its centerpiece is
      libplot, a powerful C/C++ function library for
      exporting 2-D vector graphics in many file formats, both
      vector and raster.  It can also do vector graphics
      animations.
    
      libplot is device-independent in the sense
      that its API (application programming interface) does not depend
      on the type of graphics file to be exported.
    
      Besides libplot, the package contains
      command-line programs for plotting scientific data.  Many of
      them use libplot to export graphics.
    
The current version is 2.4.1, released July 2000. It can be installed on GNU/Linux, FreeBSD, and Unix systems.
libplot, and applications built on it, can
	now export graphics files in SVG format.  SVG
	(Scalable Vector Graphics) is a new, XML-based format for Web
	graphics, which is being standardized by the Graphics Activity of the
	W3 Consortium.
      The libplot API has been extended to support the
	drawing of Postscript-style compound paths.
      
      The plotutils package comes with a 175-page manual.
      Here is an older
      version of the manual.
    
The package is free software. Its source code is distributed as a gzipped tar file, 3.3 megabytes in size. Here is how you can get it.
It includes
graph, which plots 2-D datasets or data
	streams in real time.  Being designed for command-line use, it
	can be used in shell scripts.  It produces output on an
	X Window System display, in SVG format, in PNG format, in PNM
	format, in pseudo-GIF format, in WebCGM format, in Illustrator
	format, in Postscript format, in PCL 5 format, in
	HP-GL/2 format, in Fig format
	(editable with the xfig
	drawing editor), in ReGIS format, in Tektronix format, or in
	GNU Metafile format.  Output in Postscript format may be
	edited with the idraw drawing editor.
	idraw is available in the ivtools
	package from Vectaport, Inc.  Both xfig and
	idraw are free software.
      plot, which translates GNU Metafile format to
	any of the other formats.
      tek2plot, for translating legacy Tektronix
	data to any of the above formats.
      pic2plot, for translating the
	pic language (a scripting language for
	designing box-and-arrow diagrams) to any of the above formats.
	The pic language was designed at Bell
	Laboratories as an add-on to the troff text
	formatter.
      plotfont, for displaying
	character maps of the fonts that are available in the above
	formats.  
      spline, which does spline interpolation of
	data.  It normally uses either cubic spline interpolation
	or exponential splines in tension, but it can function as a
	real-time filter under some circumstances.
      ode, which numerically integrates a system
	consisting of one or more ordinary differential equations.
      
      We developed these command-line programs to replace the Unix
      command-line programs graph, plot, and
      spline.  The GNU versions are far more powerful,
      and are free software.
    
      GNU libplot, a C/C++ function library for
      device-independent 2-D vector graphics.  GNU
      libplot is compatible with the traditional Unix
      libplot library, but is far more powerful.
      It is installed as part of the package.  On systems
      that support shared libraries, it is installed as a shared
      library.  A C++ class library called
      libplotter, which provides an object-oriented
      interface to libplot's functionality, is optionally
      installed as well.
    
      GNU libplot and libplotter support all
      the output formats mentioned above (X11, SVG, PNG, PNM, pseudo-GIF,
      WebCGM, Illustrator
      format, idraw-editable Postscript, PCL 5,
      Fig
      format, HP-GL/2, ReGIS, Tektronix, and GNU Metafile).
      They can produce animated pseudo-GIFs, and smooth,
      double-buffered animations on any X Window System display.
      The libplot imaging model is similar to
      Postscript's.  In any output format, they can draw the
      following.  
xfig drivers support
	the 35 standard Postscript fonts, and the SVG, Illustrator,
	PCL 5 and HP-GL/2 drivers support the 45 standard
	PCL 5 fonts.  All drivers support a set of
	22 Hershey vector fonts.  This includes HersheyCyrillic,
	a Russian font that uses the KOI8-R
	encoding, and HersheyEUC, a Japanese font that uses the
	8-bit EUC-JP encoding.  Japanese text strings may include both
	syllabic characters (Hiragana and Katakana) and ideographic
	characters (Kanji).  A library of over 600 Kanji is
	built in.
      
      When using libplot or libplotter, a
      programmer draws vector graphics in a `user frame', rather than
      in the device frame.  As in Postscript, the user frame may be
      transformed into the device frame by an arbitrary affine map.
      Scaling, rotation, shearing, and translation are all
      supported.
    
      Even though the plotutils package can produce what
      appear to be GIFs and animated GIFs, it does not transgress the
      patents covering the LZW compression algorithm.  The reason is
      that instead of LZW encoding, it uses run-length encoding, which
      is not patentable.  To avoid confusion, we call the files
      produced by the package `pseudo-GIF files'.
    
      A simple piechart plotting program that illustrates the use of
      GNU libplot is available here.
      It was contributed by Bernhard
      Reiter.  Chris
      Elliott has developed a libplot-based program
      called ascii_chart,
      which takes data in a two-column format and prepares a piechart
      plot or a line plot.  Jam
      Marukawa has written a shell script that allows GNU
      graph to produce bar graphs.  It is available on his freeware
      page.
    
      Also, Juergen
      Pfeifer has developed an Ada95 binding for
      libplot. Mike
      Miller has developed a SWIG wrapper for
      libplot, which lets libplot functions
      be called from Python.  It is available here.
      A separate Python wrapper, developed by Mike Nolta, is here.  Recently, Piotr Klaban has
      developed a Perl
      module for libplot.
    
plotutils package?
      The two primary authors of the plotutils package
      are Robert Maier
      and Nick Tufillaro
      (who developed ode).  Many other people
      contributed, however.  The rasterization code used by the export
      filters, which is distributed as a separate package,
      is based on the scan-conversion code in the sample X Window
      System server.
    
Visit the Free Software Directory's Science section for more utilities and related software.
Return to the GNU Project home page.
Please send FSF & GNU inquiries to 
gnu@gnu.org.
There are also other ways to contact 
the FSF.
Please send broken links and other corrections (or suggestions) to
webmasters@gnu.org.
Please see the Translations README for information on coordinating and submitting translations of this article.
Copyright (C) 2000, 2004 Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111, USA
Verbatim copying and distribution of this entire article is
permitted worldwide without royalty in any medium provided
this notice is preserved.
Updated: $Date: 2004/07/28 13:19:39 $ $Author: derekgnu $