Gnuplot

Last updated
gnuplot
Initial release1986;38 years ago (1986)
Stable release 6.0.1 (May 29, 2024;4 months ago (2024-05-29)) [±]
Preview release 6.1 [±]
Repository sf.net/p/gnuplot/gnuplot-main/
Written in C
Type Plotting
License gnuplot [1] [2]
Website www.gnuplot.info   OOjs UI icon edit-ltr-progressive.svg

gnuplot is a command-line and GUI program that can generate two- and three-dimensional plots of functions, data, and data fits. The program runs on all major computers and operating systems (Linux, Unix, Microsoft Windows, macOS, FreeDOS, and many others). [3] Originally released in 1986, its listed authors are Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo "and many others." [4] Despite its name, this software is not part of the GNU Project.

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. [5]

gnuplot can read data in multiple formats, including ability to read data on the fly generated by other programs (piping), create multiple plots on one image, do 2D, 3D, contour plots, parametric equations, supports various linear and non-linear coordinate systems, projections, geographic and time data reading and presentation, box plots of various forms, histograms, labels, and other custom elements on the plot, including shapes, text and images, that can be set manually, computed by script or automatically from input data.

gnuplot also provides scripting capabilities, looping, functions, text processing, variables, macros, arbitrary pre-processing of input data (usually across columns), as well ability to perform non-linear multi-dimensional multi-set weighted data fitting (see Curve fitting and Levenberg–Marquardt algorithm).

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.

gnuplot in interactive use. Gnuplot-in-action.png
gnuplot in interactive use.

The code below creates the graph to the right.

settitle"Some Math Functions"setxrange[-10:10]setyrange[-2:2]setzeroaxisplot(x/4)**2,sin(x),1/x
Sample Video

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". [6]

Support of Epidemic daily and weekly formats in Version 5.4.2 is a result of pandemic coronavirus data needs. [7]

Distribution terms

gnuplot License
AuthorThomas Williams, Colin Kelley
Published1986 – 1993, 1998, 2004
SPDX identifiergnuplot [1]
Debian FSG compatible Yes
FSF approved Yes
OSI approved Yes
GPL compatible No [8]
Copyleft No
Website https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright

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 (a planned name that was discarded due to already being used). [9]

Official source code to gnuplot is freely redistributable, but modified versions thereof are not. The gnuplot license allows instead 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. [2]

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:

Other programs that use gnuplot include:

Programming and application interfaces

gnuplot can be used from various programming languages to graph data, including C++ (via g3p), Perl (via PDL and other CPAN packages), Python (via gnuplotlib, Gnuplot-py and SageMath), R via (Rgnuplot), Julia (via Gaston.jl), Java (via JavaGnuplotHybrid and jgnuplot), Ruby (via Ruby Gnuplot), Ch (via Ch Gnuplot), Haskell (via Haskell gnuplot), Fortran 95, [21] Smalltalk (Squeak and GNU Smalltalk) and Rust (via RustGnuplot).

gnuplot also supports piping, which is typical of scripts. [22] For script-driven graphics, gnuplot is one of the most popular programs.[ citation needed ]

Gnuplot output formats

Gnuplot allows the user to display or store plots in several ways: [23] [24]

See also

Related Research Articles

<span class="mw-page-title-main">GNU Octave</span> Numerical analysis programming language

GNU Octave is a scientific programming language for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It may also be used as a batch-oriented language. As part of the GNU Project, it is free software under the terms of the GNU General Public License.

wxWidgets Widget toolkit

wxWidgets is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no significant code changes. A wide choice of compilers and other tools to use with wxWidgets facilitates development of sophisticated applications. wxWidgets supports a comprehensive range of popular operating systems and graphical libraries, both proprietary and free.

<span class="mw-page-title-main">MinGW</span> Free and open-source software for developing applications in Microsoft Windows

MinGW, formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications.

<span class="mw-page-title-main">Dev-C++</span> Free C++ development environment

Dev-C++ is a free full-featured integrated development environment (IDE) distributed under the GNU General Public License for programming in C and C++. It was originally developed by Colin Laplace and was first released in 1998. It is written in Delphi.

<span class="mw-page-title-main">FLTK</span>

Fast Light Toolkit (FLTK) is a cross-platform widget library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Made to accommodate 3D graphics programming, it has an interface to OpenGL, but it is also suitable for general GUI programming.

<span class="mw-page-title-main">PyQt</span> Python GUI library

PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various kinds of UNIX, including Linux and MacOS.

<span class="mw-page-title-main">FontForge</span> Font editor created by George Williams

FontForge is a FOSS font editor which supports many common font formats. Developed primarily by George Williams until 2012, FontForge is free software and is distributed under a mix of the GNU General Public License Version 3 and the 3-clause BSD license. It is available for operating systems including Linux, Windows, and macOS, and is localized into 12 languages.

<span class="mw-page-title-main">Gri graphical language</span>

Gri is a programming language for creating scientific graphics. It is licensed under the terms of the GNU General Public License.

PSTricks is a set of macros that allow the inclusion of PostScript drawings directly inside TeX or LaTeX source code. It was originally written by Timothy Van Zandt and has been maintained in recent years by Denis Girou, Sebastian Rahtz and Herbert Voss.

<span class="mw-page-title-main">Matplotlib</span> Library for creating static, animated, and interactive visualizations in Python.

Matplotlib is a plotting library for the Python programming language and its numerical mathematics extension NumPy. It provides an object-oriented API for embedding plots into applications using general-purpose GUI toolkits like Tkinter, wxPython, Qt, or GTK. There is also a procedural "pylab" interface based on a state machine, designed to closely resemble that of MATLAB, though its use is discouraged. SciPy makes use of Matplotlib.

<span class="mw-page-title-main">QtiPlot</span>

QtiPlot is a cross-platform computer program for interactive scientific graphing and data analysis. It is similar to Origin or SigmaPlot.

<span class="mw-page-title-main">Graphics Layout Engine</span> Graphics programming language

Graphics Layout Engine (GLE) is a graphics scripting language designed for creating publication quality graphs, plots, diagrams, figures and slides. GLE supports various graph types such as function plots, histograms, bar graphs, scatter plots, contour lines, color maps and surface plots through a simple but flexible set of graphing commands. More complex output can be created by relying on GLE's scripting language, which is full featured with subroutines, variables, and logic control. GLE relies on LaTeX for text output and supports mathematical formula in graphs and figures. GLE's output formats include EPS, PS, PDF, JPEG, and PNG.

GNU plotutils is a set of free software command-line tools and software libraries for generating 2D plot graphics based on data sets. It is used in projects such as PSPP and UMLgraph, and in many areas of academic research, and is included in many Linux distributions such as Debian. Windows and Mac OS X versions are also available. The library provides bindings for the C and C++ languages. Its stand-alone command-line tools can generate graphs and perform numerical calculation of spline curves and systems of ordinary differential equations. Plotutils is a GNU package and is distributed under a free software licence, the GPL.

Enthought, Inc. is a software company based in Austin, Texas, United States that develops scientific and analytic computing solutions using primarily the Python programming language. It is best known for the early development and maintenance of the SciPy library of mathematics, science, and engineering algorithms and for its Python for scientific computing distribution Enthought Canopy.

PGF/Ti<i>k</i>Z Graphics languages

PGF/TikZ is a pair of languages for producing vector graphics from a geometric/algebraic description, with standard features including the drawing of points, lines, arrows, paths, circles, ellipses and polygons. PGF is a lower-level language, while TikZ is a set of higher-level macros that use PGF. The top-level PGF and TikZ commands are invoked as TeX macros, but in contrast with PSTricks, the PGF/TikZ graphics themselves are described in a language that resembles MetaPost. Till Tantau is the designer of the PGF and TikZ languages. He is also the main developer of the only known interpreter for PGF and TikZ, which is written in TeX. PGF is an acronym for "Portable Graphics Format". TikZ was introduced in version 0.95 of PGF, and it is a recursive acronym for "TikZ ist kein Zeichenprogramm".

Pyxplot is a free software command-line graph-plotting and vector graphics package. Its interface is similar to that of gnuplot, but its graphics engine is optimised to produce output in a style appropriate for inclusion in academic journals. The LaTeX typesetting system is used to render all text labels, making it easy to annotate graphs with mathematical expressions. In addition, Pyxplot has many more flow control constructs than gnuplot, making it much easier to perform batch operations.

<span class="mw-page-title-main">Qalculate!</span> Free and open-source calculator software

Qalculate! is an arbitrary precision cross-platform software calculator. It supports complex mathematical operations and concepts such as derivation, integration, data plotting, and unit conversion. It is a free and open-source software released under GPL v2.

References

  1. 1 2 "gnuplot License". Spdx.org.
  2. 1 2 "gnuplot : gnuplot-main : [bcc809] : Copyright". Sourceforge.net. Retrieved 27 June 2022.
  3. Gnuplot 5.0 Reference Manual, 2015, ISBN   9881443644
  4. "gnuplot FAQ". Gnuplot.info. Retrieved 29 August 2022.
  5. "How to generate graphs with gnuplot". Blogs.oucs.ox.ac.uk. Retrieved 2012-07-19.
  6. "gnuplot FAQ". Gnuplot.info. Retrieved 20 June 2024.
  7. "Gnuplot Version 5.4.2 Release Notes". Archived from the original on 2021-06-08. Retrieved 2021-06-08.
  8. "License:Gnuplot". Free Software Foundation. Retrieved 2018-11-19.
  9. "1.2 How did it come about and why is it called gnuplot?". Gnuplot.info. Retrieved 2015-02-21.
  10. "JGNUplot homepage". Jgp.sourceforge.net. Retrieved 27 June 2022.
  11. "Kayali". Sourceforge.net. 19 April 2013. Retrieved 27 June 2022.
  12. "Xldlas - A basic statistical package for X windows". Archived from the original on 2014-10-31. Retrieved 2014-10-30.
  13. "Home · uwe-schneider/Gnuplotxyz Wiki". Uni-hamburg.
  14. Steingrube, Daniel S. "Steingrube". www.steingrube-home.de. Archived from the original on 2015-10-26. Retrieved 2015-08-21.
  15. "Wald: Statist: Project Home". Wald.intevation.org.
  16. "GPlot". Gplot.sourceforge.net. Retrieved 27 June 2022.
  17. "Elchemea Analytical". Elchemea.com. Retrieved 27 June 2022.
  18. "DTU Energy". Energy.dtu.dk. Archived from the original on 2021-04-14. Retrieved 2016-05-24.
  19. "GnuPlot Add-in for Excel". Sourceforge.net. 2 January 2018. Retrieved 27 June 2022.
  20. Gillespie, Dave. "The GNU Emacs Calculator". www.gnu.org. Free Software Foundation, Inc. p. Graphics. Retrieved 13 November 2020.
  21. Singh, Madhusudan. "gnuplotfortran - the Fortran 95 interface to gnuplot". gnuplotfortran.sourceforge.net. Retrieved 10 May 2016.
  22. "2-cent Tip: Piping to GNU Plot from C". Linuxgazette.net. Retrieved 27 June 2022.
  23. "gnuplot homepage". Gnuplot.info. Retrieved 27 June 2022.
  24. "Manual Rápido de Gnuplot" (PDF). Archived from the original (PDF) on 2020-06-16. Retrieved 2020-03-30.