Gnuplot: Difference between revisions

Content deleted Content added
m Undid revision 1305057388 by Bender the Bot (talk) bot error fixed
 
(17 intermediate revisions by 15 users not shown)
Line 9:
| caption = 3D rendering of an [[ellipsoid]] by gnuplot
| released = {{Start date and age|1986|df=yes}}
| latest release version = {{wikidata|property|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| 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/}}
}}
 
Line 23 ⟶ 26:
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">
Line 37 ⟶ 40:
</syntaxhighlight>
 
[[File:Gnuplot.ogv|thumb|Sample Videovideo]]
{{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#SECTION00032000000000000000x1-70001.2|title=gnuplot FAQ|website=Gnuplot.info|access-date=2720 June 20222024}}</ref>
 
Support of Epidemic daily and weekweekly formats in Version 5.4.2 is a result of pandemic coronavirus[[COVID-19_pandemic|Coronavirus]] data needs.<ref>{{Cite web |url=httphttps://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>
 
Development Version 5.5 is 2021 available.<ref>{{cite web|url=http://gnuplot.info/docs_5.5/Gnuplot_5_5.pdf |archive-url=https://web.archive.org/web/20210508211440/http://gnuplot.info/docs_5.5/Gnuplot_5_5.pdf |archive-date=2021-05-08 |url-status=live|title=gnuplot 5.5 : An Interactive Plotting Program : Thomas Williams & Colin Kelley|website=Gnuplot.info|access-date=27 June 2022}}</ref>
 
== Distribution terms ==
Line 86 ⟶ 87:
 
* [[gretl]], a [[statistics package]] for [[econometrics]]
* JGNUPlot, a java-based GUI<ref>{{Cite web|url=httphttps://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=httphttps://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], [httphttps://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 [httphttps://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=httphttps://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}}
Line 109 ⟶ 111:
== 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, (outputsuch modesas [[Computer terminal#Character-oriented terminals|dumb]], [[sixel]]).
* In a desktop window, (outputsuch modesas [[Qt (software)|Qt]], wxt, X11, aquaterm, win, ...)
* Embedded in a web page, (outputsuch modesas SVG, HTML5, PNG, JPEG, animated GIF, ...)
* File formats designed for document processing, (outputsuch modesas PostScript, PDF, cgm, emf, LaTeX variants, ...)
 
== See also ==
Line 131 ⟶ 133:
* [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
* {{Curlie|Science/Math/Software/Graphing/Gnuplot/}}
* {{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}}