Kalpana Kalpana (Editor)

Gnuplot

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Preview release
  
5.1 [±]

Written in
  
C

Development status
  
Active

Gnuplot

Initial release
  
1986; 31 years ago (1986)

Stable release
  
5.0.5 (October 10, 2016; 5 months ago (2016-10-10)) [±]

Repository
  
[cvs://anonymous:@gnuplot.cvs.sourceforge.net/cvsroot/gnuplot gnuplot.cvs.sourceforge.net/cvsroot/gnuplot]

gnuplot is a command-line program that can generate two- and three-dimensional plots of functions, data, and data fits. It is frequently used for publication-quality graphics as well as education. The program runs on all major computers and operating systems (Linux, Unix, Microsoft Windows, macOS, and others). It is a program with a fairly long history, dating back to 1986. Despite its name, this software is not distributed under the GNU General Public License (GPL), but its own free software license.

Contents

Features

gnuplot can produce output directly on screen, or in many formats of graphics files, including Portable Network Graphics (PNG), Encapsulated PostScript (EPS), Scalable Vector Graphics (SVG), JPEG and many others. It is also capable of producing LaTeX code that can be included directly in LaTeX documents, making use of LaTeX's fonts and powerful formula notation abilities. The program can be used both interactively and in batch mode using scripts.

The program is well supported and documented. Extensive help can also be found on the Internet.

The gnuplot core code is programmed in C. Modular subsystems for output via Qt, wxWidgets, and LaTeX/TikZ/ConTeXt are written in C++ and lua.

The code below creates the graph to the right.

The name of this program was originally chosen to avoid conflicts with a program called "newplot", and was originally a compromise between "llamaplot" and "nplot".

Distribution terms

Despite gnuplot's name, it is not named after, part of or related to the GNU Project, nor does it use the GNU General Public License. It was named as part of a compromise by the original authors, punning on gnu (the animal) and newplot.

Official source code to gnuplot is freely redistributable, but modified versions thereof are not. The gnuplot license instead recommends distribution of patches against official releases, optionally accompanied by officially released source code. Binaries may be distributed along with the unmodified source code and any patches applied thereto. Contact information must be supplied with derived works for technical support for the modified software.

Permission to modify the software is granted, but not the right to distribute the complete modified source code. Modifications are to be distributed as patches to the released version.

Despite this restriction, gnuplot is accepted and used by many GNU packages and is widely included in Linux distributions including the stricter ones such as Debian and Fedora. The OSI Open Source Definition and the Debian Free Software Guidelines specifically allow for restrictions on distribution of modified source code, given explicit permission to distribute both patches and source code.

Newer gnuplot modules (e.g. Qt, wxWidgets, and cairo drivers) have been contributed under dual-licensing terms, e.g. gnuplot + BSD or gnuplot + GPL.

GUIs and programs that use gnuplot

Several third-party programs have graphical user interfaces that can be used to generate graphs using gnuplot as the plotting engine. These include:

  • gretl, a statistics package for econometrics
  • JGNUPlot, a java-based GUI
  • Kayali a computer algebra system
  • xldlas, an old X11 statistics package
  • gnuplotxyz, an old Windows program
  • wxPinter, a graphical plot manager for gnuplot
  • Maxima is a text-based computer algebra system which itself has several third-party GUIs.
  • Other programs that use gnuplot include:

  • GNU Octave, a mathematical programming language
  • statist, a terminal-based program
  • gplot.pl provides a simpler command-line interface.
  • feedgnuplot provides a plotting of stored and realtime data from a pipe.
  • ElchemeaAnalytical, an Impedance spectroscopy plotting and fitting program developed by DTU Energy
  • Programming and application interfaces

    gnuplot can be used from various programming languages to graph data, including Perl (via CPAN), Python (via Gnuplot-py and SageMath), Julia (via Gaston.jl), Java (via JavaGnuplotHybrid and jgnuplot), Ruby (via Ruby Gnuplot), Ch (via Ch Gnuplot), Haskell (via Haskell gnuplot), Fortran 95, and Smalltalk (Squeak and GNU Smalltalk).

    gnuplot also supports piping, which is typical of scripts. For script-driven graphics, gnuplot is by far the most popular program.

    Programmatic alternatives

    Pyxplot (Home page) is a free plotting program that has a very similar syntax but tries to enhance gnuplot's data processing and scripting capabilities.

    Application programs could be linked with a graphics library such as:

  • PLplot
  • Matplotlib for use with Python
  • Graphical alternatives

    For interactive plotting through a graphical user interface (GUI), the following open-source programs are available:

  • Plotly – publication quality, browser-based graphing library for R, Python, MATLAB, Julia, and Perl; also features a styling GUI.
  • QtiPlot – inspired by the proprietary program Origin
  • SciDAVis – a fork of QtiPlot
  • LabPlot – project merged with SciDAVis
  • HippoDraw
  • Veusz – a GUI which also supports Python plugins
  • Graph - high quality, easy to use, popular with students for plotting data and functions and curve fitting (Windows only). www.padowan.dk
  • References

    Gnuplot Wikipedia