Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Gnuplot
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Command-line and GUI plotting program}} {{distinguish|plotutils}} {{Lowercase title}} {{More citations needed|date=March 2012}} {{Infobox software | name = gnuplot | logo = | screenshot = Gnuplot ellipsoid.svg | caption = 3D rendering of an [[ellipsoid]] by gnuplot | released = {{Start date and age|1986|df=yes}} | programming language = [[C (programming language)|C]] | genre = [[List of graphing software|Plotting]] | license = [[Gnuplot license|gnuplot]]<ref name="spdx" /><ref name="lice" /> | repo = {{URL|sf.net/p/gnuplot/gnuplot-main/}} }} '''gnuplot''' is a [[command-line]] and [[GUI]] program that can generate two- and three-dimensional [[Plot (graphics)|plots]] of [[Function (mathematics)|function]]s, [[data]], and [[Curve fitting|data fits]]. The program runs on all major [[computer]]s and [[operating system]]s ([[Linux]], [[Unix]], [[Microsoft Windows]], [[macOS]], [[FreeDOS]], and many others).<ref>Gnuplot 5.0 Reference Manual, 2015, {{ISBN|9881443644}}</ref> 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."<ref>{{cite web|url=http://www.gnuplot.info/faq/index.html#x1-70001.2|title=gnuplot FAQ|website=Gnuplot.info|access-date=29 August 2022}}</ref> Despite its name, this software is not part of the [[GNU Project]]. == 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.<ref>{{cite web|website=Blogs.oucs.ox.ac.uk|title=How to generate graphs with gnuplot|url=http://blogs.oucs.ox.ac.uk/networks/2011/09/02/how-to-generate-graphs-with-gnuplot/|access-date=2012-07-19}} </ref> gnuplot can read data in multiple formats, including ability to read data on the fly generated by other programs ([[Pipe (Unix)|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 (see [[Curve fitting]] and [[Levenberg–Marquardt algorithm]]). The gnuplot core code is programmed in [[C (programming language)|C]]. Modular subsystems for output via [[Qt (software)|Qt]], [[wxWidgets]], and LaTeX/TikZ/ConTeXt are written in [[C++]] and [[Lua (programming language)|Lua]]. [[File:Gnuplot-in-action.png|thumb|upright=1.4|gnuplot in interactive use]] The code below creates the graph to the right. <syntaxhighlight lang="gnuplot"> set title "Some Math Functions" set xrange [-10:10] set yrange [-2:2] set zeroaxis plot (x/4)**2, sin(x), 1/x </syntaxhighlight> [[File:Gnuplot.ogv|thumb|Sample video]] {{Gallery |width=240 |height=160 |File:Gnuplot tcp analysis.png|alt2=Thousands of dots plotted, forming a pattern|A [[scatter plot]] of samples from a text file |File:Logarithmic spiral.svg|alt3=|A logarithmic spiral }} 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".<ref>{{Cite web|url=http://www.gnuplot.info/faq/faq.html#x1-70001.2|title=gnuplot FAQ|website=Gnuplot.info|access-date=20 June 2024}}</ref> Support of Epidemic daily and weekly formats in Version 5.4.2 is a result of pandemic coronavirus data needs.<ref>{{Cite web |url=http://gnuplot.sourceforge.net/ReleaseNotes_5_4_2.html |title=Gnuplot Version 5.4.2 Release Notes |access-date=2021-06-08 |archive-date=2021-06-08 |archive-url=https://web.archive.org/web/20210608120649/http://gnuplot.sourceforge.net/ReleaseNotes_5_4_2.html |url-status=live }}</ref> == Distribution terms == {{Infobox software license | name = gnuplot License | image = | caption = | author = Thomas Williams, Colin Kelley | version = | publisher = | date = 1986 – 1993, 1998, 2004 | spdx = gnuplot<ref name="spdx">{{cite web|url=https://spdx.org/licenses/gnuplot.html|title=gnuplot License|website=Spdx.org}}</ref> | OSI approved = Yes | Debian approved = Yes | FSF approved = Yes | GPL compatible = No<ref name="gnulicense">{{cite web | url=https://directory.fsf.org/wiki/License:Gnuplot | title=License:Gnuplot | publisher=Free Software Foundation | access-date=2018-11-19}}</ref> | copyleft = No | linking = | 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).<ref name="gnuplot faq">{{cite web | url=http://www.gnuplot.info/faq/faq.html#x1-70001.2 | title=1.2 How did it come about and why is it called gnuplot? | website=Gnuplot.info | access-date=2015-02-21}}</ref> 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.<ref name=lice>{{Cite web|url=https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright|title=gnuplot : gnuplot-main : [bcc809] : Copyright|website=Sourceforge.net|access-date=27 June 2022}}</ref> <blockquote> 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. </blockquote> 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 (operating system)|Fedora]]. The [[Open-source software#The Open Source Definition|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]]s 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<ref>{{Cite web|url=http://jgp.sourceforge.net/|title=JGNUplot homepage|website=Jgp.sourceforge.net|access-date=27 June 2022}}</ref> * Kayali<ref>{{Cite web|url=https://sourceforge.net/projects/kayali/|title=Kayali|website=Sourceforge.net|date=19 April 2013 |access-date=27 June 2022}}</ref> a [[computer algebra system]] * xldlas, an old X11 statistics package<ref>{{Cite web |url=http://linux.maruhn.com/sec/xldlas.html |title=Xldlas - A basic statistical package for X windows |access-date=2014-10-30 |archive-url=https://web.archive.org/web/20141031022018/http://linux.maruhn.com/sec/xldlas.html |archive-date=2014-10-31 |url-status=dead }}</ref> * gnuplotxyz, an old Windows program<ref>{{Cite web|url=http://www.uni-hamburg.de/Wiss/FB/15/Sustainability/schneider/gnuplot/|title = Home · uwe-schneider/Gnuplotxyz Wiki|website=Uni-hamburg}}</ref> * wxPinter, a graphical plot manager for gnuplot<ref>{{cite web|title = Steingrube|url = http://www.steingrube-home.de/software_wxPinter.html|website = www.steingrube-home.de|access-date = 2015-08-21|first = Daniel S.|last = Steingrube|archive-url = https://web.archive.org/web/20151026154709/http://www.steingrube-home.de/software_wxPinter.html|archive-date = 2015-10-26|url-status = dead}}</ref> * [[Maxima (software)|Maxima]] is a text-based [[computer algebra system]] which itself has several third-party GUIs * [[Reduce (computer algebra system)|REDUCE]] is a text-based [[computer algebra system]]; versions using CSL have a GUI and there are several third-party GUIs Other programs that use gnuplot include: * [[GNU Octave]], a mathematical programming language * statist, a terminal-based program<ref>{{Cite web|url=http://wald.intevation.org/projects/statist/|title = Wald: Statist: Project Home|website=Wald.intevation.org}}</ref> * gplot.pl provides a simpler command-line interface.<ref>{{Cite web|url=http://gplot.sourceforge.net/|title=GPlot|website=Gplot.sourceforge.net|access-date=27 June 2022}}</ref> * [http://github.com/dkogan/feedgnuplot feedgnuplot] provides a plotting of stored and realtime data from a pipe * ElchemeaAnalytical,<ref>{{Cite web|url=https://www.elchemea.com/|title=Elchemea Analytical|website=Elchemea.com|access-date=27 June 2022}}</ref> an [[impedance spectroscopy]] plotting and fitting program developed by DTU Energy<ref>{{Cite web|url=http://www.energy.dtu.dk/english|title=DTU Energy|website=Energy.dtu.dk|access-date=2016-05-24|archive-date=2021-04-14|archive-url=https://web.archive.org/web/20210414194356/https://www.energy.dtu.dk/english|url-status=dead}}</ref> * Gnuplot add-in for [[Microsoft Excel]]<ref>{{Cite web|url=https://sourceforge.net/projects/gnuplot-add-in-for-excel/|title=GnuPlot Add-in for Excel|website=Sourceforge.net|date=2 January 2018 |access-date=27 June 2022}}</ref> * Calc, the [[GNU Emacs]] calculator<ref>{{cite web |last1=Gillespie |first1=Dave |title=The GNU Emacs Calculator |url=https://www.gnu.org/software/emacs/manual/html_node/calc/Graphics.html#Graphics |website=www.gnu.org |publisher=Free Software Foundation, Inc. |access-date=13 November 2020 |page=Graphics}}</ref> == Programming and application interfaces == gnuplot can be used from various programming languages to graph data, including [[C++]] (via [http://arminms.github.io/g3p G3P]), [[Perl]] (via [[Perl Data Language|PDL]] and other [[CPAN]] packages), [[Python (programming language)|Python]] (via [https://github.com/dkogan/gnuplotlib gnuplotlib], [http://gnuplot-py.sourceforge.net/ Gnuplot-py] and [[SageMath]]), [[R (programming language)|R]] via ([https://cran.r-project.org/web/packages/Rgnuplot/index.html Rgnuplot]), [[Julia (programming language)|Julia]] (via [https://github.com/mbaz/Gaston.jl Gaston.jl]), [[Java (programming language)|Java]] (via [https://github.com/mleoking/JavaGnuplotHybrid JavaGnuplotHybrid] and [http://jgnuplot.sourceforge.net/ jgnuplot]), [[Ruby (programming language)|Ruby]] (via [https://github.com/rdp/ruby_gnuplot Ruby Gnuplot]), [[Ch (computer programming)|Ch]] (via [http://www.softintegration.com/docs/ch/plot/ Ch Gnuplot]), [[Haskell (programming language)|Haskell]] (via [https://www.haskell.org/haskellwiki/Gnuplot Haskell gnuplot]), [[Fortran 95]],<ref>{{cite web|last1=Singh|first1=Madhusudan|title=gnuplotfortran - the Fortran 95 interface to gnuplot|url=http://gnuplotfortran.sourceforge.net|website=gnuplotfortran.sourceforge.net|access-date=10 May 2016}}</ref> [[Smalltalk]] ([[Squeak]] and [[GNU Smalltalk]]) and [[Rust (programming language)|Rust]] (via [https://github.com/SiegeLord/RustGnuplot RustGnuplot]). gnuplot also supports [[Pipe (Unix)|piping]], which is typical of scripts.<ref>{{Cite web|url=https://linuxgazette.net/168/misc/lg/2_cent_tip__piping_to_gnu_plot_from_c.html|title=2-cent Tip: Piping to GNU Plot from C|website=Linuxgazette.net|access-date=27 June 2022}}</ref> For script-driven graphics, gnuplot is one of the most popular programs.{{citation needed|date=October 2014}} == Gnuplot output formats == Gnuplot allows the user to display or store plots in several ways:<ref>{{Cite web|url=http://www.gnuplot.info/|title=gnuplot homepage|website=Gnuplot.info|access-date=27 June 2022}}</ref><ref>{{Cite web |url=http://fm137.ugr.es/imnf/descargas/archivos/manual-gnuplot.pdf |title=Manual Rápido de Gnuplot |access-date=2020-03-30 |archive-date=2020-06-16 |archive-url=https://web.archive.org/web/20200616231604/http://fm137.ugr.es/imnf/descargas/archivos/manual-gnuplot.pdf |url-status=dead }}</ref> * On the console, such as [[Computer terminal#Character-oriented terminals|dumb]], [[sixel]]. * In a desktop window, such as [[Qt (software)|Qt]], wxt, X11, aquaterm, win. * Embedded in a web page, such as SVG, HTML5, PNG, JPEG, animated GIF. * File formats designed for document processing, such as PostScript, PDF, cgm, emf, LaTeX variants. == See also == {{Portal|Free and open-source software}} * [[List of graphing software]] == References == {{Reflist}} == Further reading and external links == {{Commons category|Gnuplot}} {{Wikibooks|gnuplot}} {{Wikibooks|Ad Hoc Data Analysis From The Unix Command Line|Quick Plotting With gnuplot}} * {{Official website}} * {{SourceForge|gnuplot}} * [https://alogus.com/publishing/gnuplot5/ Gnuplot 5]: an interactive ebook about gnuplot v.5. * [http://www.gnuplotting.org/ gnuplotting]: a blog of gnuplot examples and tips * [http://spplotters.blogspot.com/ spplotters]: a blog of gnuplot examples and tips * [http://gnuplot-surprising.blogspot.com/ gnuplot surprising]: a blog of gnuplot examples and tips * [https://www.gnuplot.io/ gnuplot online]: WebAssembly compiled online gnuplot v.5.x * {{cite book|author=Philipp K. Janert|title=Gnuplot in Action|isbn=978-1933988399|publisher=Manning Publications|year=2009}} * {{cite book|author=Lee Phillips|title=gnuplot Cookbook|isbn=978-1849517249|publisher=Packt Publishing|year=2012}} * {{cite book|last1=Williams|first1=Thomas|last2=Kelley|first2=Colin|title=Gnuplot 5.0|isbn=978-988-14436-4-9|publisher=Samurai Media Limited|year=2015}} * [https://web.archive.org/web/20071027111440/http://www-128.ibm.com/developerworks/library/l-gnuplot/ Visualize your data with gnuplot]: an IBM tutorial {{Authority control}} [[Category:Articles containing video clips]] [[Category:Computer animation]] [[Category:Cross-platform free software]] [[Category:Data analysis software]] [[Category:Free 3D graphics software]] [[Category:Free educational software]] [[Category:Free mathematics software]] [[Category:Free plotting software]] [[Category:Free software programmed in C]] [[Category:Plotting software]] [[Category:Regression and curve fitting software]] [[Category:Software that uses wxWidgets]] [[Category:Software that uses Qt]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category
(
edit
)
Template:Distinguish
(
edit
)
Template:Gallery
(
edit
)
Template:ISBN
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Infobox software license
(
edit
)
Template:Lowercase title
(
edit
)
Template:Main other
(
edit
)
Template:More citations needed
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:SourceForge
(
edit
)
Template:Template other
(
edit
)
Template:Wikibooks
(
edit
)