This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Gnuplot" – news ·newspapers ·books ·scholar ·JSTOR(March 2012) (Learn how and when to remove this message) |
![]() 3D rendering of anellipsoid by gnuplot | |
Initial release | 1986; 39 years ago (1986) |
---|---|
Stable release | 6.0.1 (May 29, 2024; 10 months ago (2024-05-29)) [±] |
Preview release | 6.1 [±] |
Repository | sf |
Written in | C |
Type | Plotting |
License | gnuplot[1][2] |
Website | www![]() |
gnuplot is acommand-line andGUI program that can generate two- and three-dimensionalplots offunctions,data, anddata fits. The program runs on all majorcomputers andoperating 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 theGNU Project.
gnuplot can produce output directly on screen, or in many formats of graphics files, includingPortable Network Graphics (PNG),Encapsulated PostScript (EPS),Scalable Vector Graphics (SVG),JPEG and many others. It is also capable of producingLaTeX 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 as the ability to perform non-linear multi-dimensional multi-set weighted data fitting (seeCurve fitting andLevenberg–Marquardt algorithm).
The gnuplot core code is programmed inC. Modular subsystems for output viaQt,wxWidgets, and LaTeX/TikZ/ConTeXt are written inC++ andLua.
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
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]
Author | Thomas Williams, Colin Kelley |
---|---|
Published | 1986 – 1993, 1998, 2004 |
SPDX identifier | gnuplot[1] |
Debian FSG compatible | Yes |
FSFapproved | Yes |
OSIapproved | 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 theGNU Project, nor does it use theGNU General Public License. It was named as part of a compromise by the original authors, punning ongnu (the animal) andnewplot (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 fortechnical 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 manyGNU packages and is widely included inLinux distributions including the stricter ones such asDebian andFedora. TheOSI Open Source Definition and theDebian 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.
Several third-party programs havegraphical user interfaces that can be used to generate graphs using gnuplot as the plotting engine. These include:
Other programs that use gnuplot include:
gnuplot can be used from various programming languages to graph data, includingC++ (viaG3P),Perl (viaPDL and otherCPAN packages),Python (viagnuplotlib,Gnuplot-py andSageMath),R via (Rgnuplot),Julia (viaGaston.jl),Java (viaJavaGnuplotHybrid andjgnuplot),Ruby (viaRuby Gnuplot),Ch (viaCh Gnuplot),Haskell (viaHaskell gnuplot),Fortran 95,[21]Smalltalk (Squeak andGNU Smalltalk) andRust (viaRustGnuplot).
gnuplot also supportspiping, which is typical of scripts.[22] For script-driven graphics, gnuplot is one of the most popular programs.[citation needed]
Gnuplot allows the user to display or store plots in several ways:[23][24]