Gnuplot

Last updated
gnuplot
Initial release1986;37 years ago (1986)
Stable release 5.4.10 (October 20, 2023;52 days ago (2023-10-20)) [±]
Preview release 6.0 [±]
Repository
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 high-level programming language primarily intended 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.

<span class="mw-page-title-main">GNU TeXmacs</span> Open-source word processor

GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as a variant of GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by Joris van der Hoeven and a group of developers. The program produces structured documents with a WYSIWYG user interface. New document styles can be created by the user. The editor provides high-quality typesetting algorithms and TeX and other fonts for publishing professional looking documents.

<span class="mw-page-title-main">R (programming language)</span> Programming language for statistics

R is a programming language for statistical computing and graphics supported by the R Core Team and the R Foundation for Statistical Computing. Created by statisticians Ross Ihaka and Robert Gentleman, R is used among data miners, bioinformaticians and statisticians for data analysis and developing statistical software. The core R language is augmented by a large number of extension packages containing reusable code and documentation.

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

Fast Light Toolkit 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.

gretl

gretl is an open-source statistical package, mainly for econometrics. The name is an acronym for GnuRegression, Econometrics and Time-seriesLibrary.

<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">Mathomatic</span> Computer algebra system

Mathomatic is a free, portable, general-purpose computer algebra system (CAS) that can symbolically solve, simplify, combine, and compare algebraic equations, and can perform complex number, modular, and polynomial arithmetic, along with standard arithmetic. It does some symbolic calculus (derivative, extrema, Taylor series, and polynomial integration and Laplace transforms), numerical integration, and handles all elementary algebra except logarithms. Trigonometric functions can be entered and manipulated using complex exponentials, with the GNU m4 preprocessor. Not currently implemented are general functions like f(x), arbitrary-precision and interval arithmetic, and matrices.

<span class="mw-page-title-main">LabPlot</span> Application for interactive graphing and analysis of scientific data

LabPlot is a free software cross-platform computer program for interactive scientific graphing and data analysis, written mainly for the KDE desktop for Unix-like operating systems, and later available for Microsoft Windows. It is similar to Origin, and is able to import Origin's data files.

<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>

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.

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 27 June 2022.
  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. 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.
  19. "GnuPlot Add-in for Excel". Sourceforge.net. 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.