HOME

TheInfoList



OR:

gnuplot is a
command-line A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive command (computing), commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invokin ...
and GUI program that can generate two- and three-dimensional plots of functions,
data In the pursuit of knowledge, data (; ) is a collection of discrete values that convey information, describing quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpret ...
, and data fits. The program runs on all major computers and
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s (
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, Microsoft Windows,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
FreeDOS FreeDOS (formerly Free-DOS and PD-DOS) is a free software operating system for IBM PC compatible computers. It intends to provide a complete MS-DOS-compatible environment for running legacy software and supporting embedded systems. FreeDOS ca ...
, and many others). 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." Despite its name, this software is not part of the
GNU Project The GNU Project () is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing devi ...
.


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 Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium sin ...
(SVG),
JPEG JPEG ( ) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and im ...
and many others. It is also capable of producing
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosper ...
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. gnuplot can read data in multiple formats, including ability to read data on the fly generated by other programs (
piping Within industry, piping is a system of pipes used to convey fluids (liquids and gases) from one location to another. The engineering discipline of piping design studies the efficient transport of fluid. Industrial process piping (and accomp ...
), 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 Curve fitting is the process of constructing a curve, or mathematical function, that has the best fit to a series of data points, possibly subject to constraints. Curve fitting can involve either interpolation, where an exact fit to the data i ...
and Levenberg–Marquardt algorithm). The gnuplot core code is programmed in C. Modular subsystems for output via Qt,
wxWidgets wxWidgets (formerly wxWindows) 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 min ...
, and LaTeX/TikZ/ConTeXt are written in C++ and
Lua Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
. The code below creates the graph to the right. set title "Some Math Functions" set xrange 10:10set yrange 2:2set zeroaxis plot (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". Support of Epidemic daily and week formats in Version 5.4.2 is a result of pandemic coronavirus data needs. Development Version 5.5 is 2021 available.


Distribution terms

Despite gnuplot's name, it is not named after, part of or related to the
GNU Project The GNU Project () is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing devi ...
, nor does it use the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end user In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
. 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 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.
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 A number of notable software packages were developed for, or are maintained by, the Free Software Foundation as part of the GNU Project. What it means to be a GNU package Summarising the situation in 2013, Richard Stallman identified nine aspects ...
and is widely included in
Linux distributions A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading on ...
including the stricter ones such as
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of De ...
and
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
. 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 interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
s that can be used to generate graphs using gnuplot as the plotting engine. These include: * gretl, a
statistics package Statistical software are specialized computer programs for analysis in statistics and econometrics. Open-source * ADaMSoft – a generalized statistical software with data mining algorithms and methods for data management * ADMB – a softwa ...
for
econometrics Econometrics is the application of statistical methods to economic data in order to give empirical content to economic relationships.M. Hashem Pesaran (1987). "Econometrics," '' The New Palgrave: A Dictionary of Economics'', v. 2, p. 8 p. 8� ...
* 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 * Gnuplot add-in for
Microsoft Excel Microsoft Excel is a spreadsheet developed by Microsoft for Windows, macOS, Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro programming language called Visual Basic for ...
* Calc, the
GNU Emacs GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship proje ...
calculator


Programming and application interfaces

gnuplot can be used from various programming languages to graph data, including
Perl Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
(via
PDL PDL is an initialism for: Politics *Democratic Liberal Party (Romania), Democratic Liberal Party (''Partidul Democrat Liberal''), a former political party in Romania *Labour Democratic Party (''Partito Democratico del Lavoro''), a former politi ...
and other CPAN packages), Python (vi
gnuplotlibGnuplot-py
and
SageMath SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, nu ...
), R via
Rgnuplot
, Julia (vi
Gaston.jl
,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
(vi
JavaGnuplotHybrid
an
jgnuplot
,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
(vi
Ruby Gnuplot
, Ch (vi
Ch Gnuplot
, Haskell (vi
Haskell gnuplot
, Fortran 95,
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by ...
( Squeak and GNU Smalltalk) and
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH), ...
(vi
RustGnuplot
. gnuplot also supports
piping Within industry, piping is a system of pipes used to convey fluids (liquids and gases) from one location to another. The engineering discipline of piping design studies the efficient transport of fluid. Industrial process piping (and accomp ...
, which is typical of scripts. For script-driven graphics, gnuplot is one of the most popular programs.


Gnuplot output formats

Gnuplot allows the user to display or store plots in several ways: *On the console (output modes dumb, sixel) *In a desktop window (output modes Qt, wxt, X11, aquaterm, win, ...) *Embedded in a web page (output modes SVG, HTML5, PNG, JPEG, animated GIF, ...) *File formats designed for document processing (output modes PostScript, PDF, cgm, emf, LaTeX variants, ...)


See also

* List of graphing software


References


Further reading and external links

* *
Gnuplot 5
an interactive ebook about gnuplot v.5.
gnuplotting
a blog of gnuplot examples and tips
spplotters
a blog of gnuplot examples and tips
gnuplot surprising
a blog of gnuplot examples and tips * * * *
Visualize your data with gnuplot
an IBM tutorial {{Authority control Articles containing video clips Computer animation Cross-platform free software Data analysis software Free 3D graphics software Free educational software Free mathematics software Free plotting software Free software programmed in C Plotting software Regression and curve fitting software Software that uses wxWidgets Software that uses Qt