gnuplot Changelog

What's new in gnuplot 5.4.2

Jul 22, 2021
  • NEW in "using" context, $# means "number of columns in current data line"
  • NEW define on program entry: I = sqrt(-1) = {0.,1.}
  • NEW support input data that uses epidemiological date-week formats
  • NEW optional fillcolor for "set key opaque"
  • NEW provide and document use of a plugin to provide uigamma function
  • CHANGE much improved domain and precision for igamma function
  • CHANGE generate only one key entry per multi-dataset input file Bug #2380
  • CHANGE (Windows): attempt to convert unicode on command line to UTF-8
  • CHANGE clip `with image` to plot boundary in 2D plots
  • CHANGE In gprintf format "%c", add no space for a null prefix Bug #2266
  • CHANGE Make auto-placement of left border less sensitive to plot size Bug #2415
  • FIX time formats %U %W Bug #2390
  • FIX left-justification of titles in splot with user-specified key position
  • FIX clipping of filled polygons that have only 1 or 2 vertices Bug #2400
  • FIX "set tics front" unexpectedly made all grid lines invisible
  • FIX more terminals support requested linewidth for textbox borders
  • FIX indexing of multiple matrix data sets in a single input file
  • FIX do not inject extra 'n' into input stream after 'set term' Bug #2292
  • FIX cairo terminals: Do not lose font info during multi-line enhanced text
  • FIX cairo terminals (Windows): ignore "text scaling" from user screen settings
  • FIX pm: better mousing and font handling
  • FIX win: instabilities associated with changing window size Bug #2301 #2304
  • FIX wxt: use of multiple plot windows from single-threaded wxt terminal
  • FIX qt: prevent creation of zombie gnuplot_qt process Bug #2188

New in gnuplot 5.4.1 (Mar 31, 2021)

  • Version 5.4.1 is an incremental release in the stable 5.4 series containing bug fixes and a few new features back-ported from the development version.

New in gnuplot 5.4.0 (Aug 13, 2020)

  • Support for 64-bit integer arithmetic:
  • All evaluation of expressions and functions uses 64-bit arithmetic if supported by the hardware platform.
  • Integer overflow is detected and handled according to user preference.
  • Voxel grids:
  • Gnuplot now supports operations based on 3D grids of voxel data.
  • The current content of one or more voxel grids can be referenced by splot commands to assign colors or other properties to plot elements.
  • Data in a voxel grids can be plotted by splot styles dots, points, or isosurface.
  • Pixmaps as objects:
  • "set pixmap" allows import of a png/jpeg/gif image as a pixmap that can be positioned anywhere in a plot or on the page. Unlike plotting "with image", pixmap objects retain their original aspect ratio and size independent of axis scaling or rotation. Example: http://gnuplot.info/demo_5.4/pixmap.html
  • New plot styles and plot options:
  • 3D plot style "with polygons" reads polygon faces from a data file. These can be used to create a surface or to describe a solid object. Example: http://gnuplot.info/demo_5.4/polygons.html
  • "splot $voxelgrid with isosurface" creates a tessellated 3D surface enclosing voxels above a requested threshold level. Example: http://gnuplot.info/demo_5.4/isosurface.html
  • "set spiderplot" selects a new plotting mode for creating spider plots, also known as radar charts. These are essentially parallel axis plots in which the axes are arranged radially rather than vertically. Example: http://gnuplot.info/demo_5.4/spiderplot.html
  • Plot styles "with circles" and "with boxes" can be used in 3D plots. Example: http://gnuplot.info/demo_5.4/3Dboxes.html
  • 2D plot style "with arrows" is a variant of "with vectors" in which each arrow is specified by x:y:length:angle rather than x:y:dx:dy.
  • pm3d surfaces can have individual fill styles and separate top/bottom fill colors. Example: http://gnuplot.info/demo_5.4/hidden_compare.html
  • pm3d option "noclipcb" causes quadrangles with palette color outside cbrange to be omitted from the plot rather than being assigned a color clipped to cbmin or cbmax.
  • Contour line types can be customized. Example: http://gnuplot.info/demo_5.4/custom_contours.html
  • New data pre-processing filters:
  • "smooth zsort" sorts 2D points on values in a 3rd column to determine their drawing order. In combination with using palette colors, this facilitates highlighting outliers in a crowded scatter plot.
  • New commands and command options:
  • Voxel grid commands "set vgrid", "set vxrange", "vclear", "vfill" and voxel().
  • New options "set walls" and "set grid vertical" for showing the xy, xz, and yz planes in 3D plots.
  • "set table separator {tab|comma|"char"}" and "plot with table" can be used to create csv files.
  • Array size can be implicit if an initializer is present, e.g. Array A = [1,2,3]
  • Extra lines of text or symbols in the key can be added by substituting "keyentry" in place of a filename or function in plot and splot commands.
  • User-specified interpretation of mouse coordinates. See map-projection demos.
  • "set datafile columnheaders" causes the first line of input to be read as strings rather than as data values. This is equivalent to "set key autotitle columnheader" but does not affect generation of key entries. Column headers are collected into an array of strings by any subsequent "stats" commands.
  • "set view projection {xz|yz}"
  • New terminals and terminal options:
  • New latex terminal "pict2e" supersedes older terminals "latex", "emtex", "eepic", and "tpic", which are no longer built by default.
  • The "pstricks" terminal now supports current gnuplot features including RGB colors, transparency, filled polygons, and boxes.
  • The "pcl5" terminal now supports current gnuplot features.
  • The "texdraw" terminal has been updated.
  • The "windows" terminal now uses Direct2D rather than GDI/GDI+.
  • The "dospc" and "svga" DOS terminals now support interactive terminal and mouse input.
  • Other new features:
  • Enhanced text mode accepts the escape sequence U+xxxx (where xxxx is a 4 or 5 character hexadecimal) to represent a Unicode code point that is converted to the corresponding UTF-8 byte sequence on output.
  • Plot titles are evaluated after plotting, rather than before. This allows the title to reference values generated while plotting.
  • Hypertext from "set label ... hypertext" is sent to the clipboard on left mouse-click.
  • Time/date input recognizes format %p to handle am/pm field
  • Support for multiple textbox styles
  • Built-in modified Bessel functions (besi0 besi1 besin)
  • Built-in order N Bessel functions of the 1st and 2nd kind (besjn besyn)
  • Changes/Differences to previous gnuplot versions:
  • Plot style "with parallelaxes" has revised syntax to match histogram and spiderplot commands. There is no longer a limit on the number of axes in a plot, and iteration is possible: E.g.: "plot for [column=1:N] DATA using column with parallelaxes"
  • pm3d filled area quadrangles are clipped smoothly to the current zrange. This affects pm3d surfaces and the faces of 3D boxes, polygons, etc. Example: http://gnuplot.info/demo_5.4/pm3d_clip.html
  • Imaginary values returned by the "using" specifier of a 2D plot are treated as undefined values (NaN). This was already true for function plots and for 3D data plots.
  • The "set fontpath" command is deprecated (only affects PostScript).
  • Since the "latex" and "eepic" terminals are deprecated, the tutorial for using them is no longer included with the distribution.
  • Fixes since 5.4.rc2 (second release candidate):
  • x11: do not drop characters on 'pause mouse close' (Bug #2208)
  • qt: clip fillbox (and "clear") to ymax (Bug #2276)
  • qt: avoid error messages from Qt 5.15
  • tikz: implicit border width of text nodes is always zero (Bug #2275)
  • Do not recalculate range of unused y2 axis on refresh (Bug #2274)
  • Back out EXPERIMENTAL command "load $DATABLOCK"
  • colors in 'splot with image' should not change on zooming
  • replace dgrid3d approximation with true Euclidean metric (Bug #2277)
  • adjust "set key at graph , " as needed for 2D projection splots

New in gnuplot 5.0.5 (Jan 11, 2017)

  • NEW allow filename completion for system commands and pipes (backport from 5.1)
  • NEW option to plot with labels {rotate variable}
  • NEW command "set minussign"
  • NEW stats command "name" option now accepts "columnheader" or "columnheader(N)"
  • NEW command option "set colorbox invert"
  • CHANGE qt terminal force selection of outline font rather than bitmap font
  • CHANGE post terminal simplex/duplex output depends on PostScript level setting
  • CHANGE improved autoscaling of plot "with boxes"
  • CHANGE qt terminal sets TERM_POLYGON_PIXELS to avoid aliasing artifacts
  • CHANGE all stats and fit commands skip header records if "autotitle columnhead"
  • FIX Do not confuse EOF with 8-bit character 0x177 (E.g. in Cyrillic encodings).
  • FIX use blank line rather than 'u' flag in "set table" output of smoothed data
  • FIX order dependence of "fillcolor" keyword in plot commands
  • FIX svg - better vertical justification of rotated text
  • FIX wxt - file export widget correctly handles inactive plots
  • FIX qt - preserve leading and trailing whitespace in enhanced text strings
  • FIX various bugs affecting matrix data plotted "with image"

New in gnuplot 5.0.3 (Apr 24, 2016)

  • Patchlevel 3 also contains a back-port of image bookkeeping from the development
  • Patchlevel 3 (5.0.3) contains updates for four terminals:
  • wxt - fixes for various font problems
  • qt - plots are toggled only on left-click (other events ignored)
  • aqua - upgrade to support version 5 dash types
  • tkcanvas - huge rewrite to the 1999 era driver now supports v5

New in gnuplot 4.6.3 (Apr 22, 2013)

  • src/stats.c: Fix incorrect emory allocation for large matrices.
  • Bump patchlevel to 3 so that we don't have a version mismatch between the linux and windows packages being distributed.
  • term/pslatex.trm (EPSLATEX_set_color): Revert a portion of the patch from 2013-01-08 (Tracker #1199). Repairs overzealous removal of redundant color commands. Bug #1185.
  • src/graphics.c (plot_image_or_update_axes) src/plot2d.c (refresh_bounds): When refreshing images plots we must recheck range limits on both x and y.
  • src/qtterminal/QtGnuplotScene.cpp (processEvent): Fix off-by-one iteration over visibility of plots after a zoom or other replot.
  • src/term.c (term_apply_lp_properties): A patch of 2013-01-08 switched to always applying linetype color even if the use_palette flag was not set. This broke the TERM_MONOCHROME setting on terminals that have it, as seen in the "test" command. Handle monochrome terminals as a special case. Bug #1225
  • docs/Makefile.in: Remove nested @ symbols from Makefile
  • src/plot2d.c src/misc.c (lp_parse): The "fillcolor|fc" keyword in a plot command was not correctly parsed.
  • configure.in: modify for use with current automake (1.12/1.13)

New in gnuplot 4.6.0 (Mar 13, 2012)

  • New syntax supporting multi-line blocks of code delimited by curly braces
  • Time formats can handle fractional seconds to microsecond precision.
  • User-definable linetypes that can be used to establish a locally preferred default sequence of colors or dash/thickness/point styles.
  • Statistical summary of the data to be plotted (new command "stats")
  • New terminal drivers: qt context epscairo cairolatex
  • The version for Windows received major improvements (GUI, help, native terminal and wxt)
  • Improved support for UTF-8, SJIS and other multi-byte encodings

New in gnuplot 4.6 RC1 (Jan 20, 2012)

  • New syntax supporting multi-line blocks of code delimited by curly braces if () { ... } else { ... } do for [] { ... } while () { ... }
  • Time formats can handle fractional seconds to microsecond precision.
  • User-definable linetypes, which can be used to establish a locally preferred default sequence of colors or dash/thickness/point styles.
  • Statistical summary of the data to be plotted (new command "stats")
  • New terminal drivers: qt context epscairo cairolatex
  • Improved support for UTF-8, SJIS and other multi-byte encodings

New in gnuplot 4.4.4 (Nov 15, 2011)

  • NEW boxxyerrors plot style now allows variable color
  • NEW splot with pm3d now allows variable rgb color
  • NEW "nonuniform matrix" indicates ascii data with explicit x, y
  • CHANGE columnhead(N) is a string-valued function, not a keyword
  • CHANGE Demarcate plots in svg output using ...
  • CHANGE xticlabels() works for binary data files as well as ascii
  • CHANGE "set key maxrows" now applies to 3D plots as well as 2D
  • CHANGE rewrite installation path rules for TeX files
  • FIX wxt terminal should now work on at least some flavors of OSX
  • FIX incorrect space allowed for outside left key box
  • FIX buffer overflow from enhanced text timefmt tic labels
  • FIX correction for offset in epochs when reading in time format "%s"
  • FIX discontinuity in defined palette limited by maxcolors
  • FIX initialization of svg pattern-fill definitions
  • FIX positioning of histogram bars when some data entries are missing
  • FIX emf terminal can handle UTF-8 encoding
  • FIX User-specified axis tick labels override auto labels in 3D just as in 2D
  • FIX `plot with labels` failed to skip labels with UNDEFINED coords
  • FIX NaN (not a number) implementation for Windows build
  • FIX work-around for poor scaling in pdfcairo pattern fill
  • FIX segfault if mismatch between palette sizes of successive terminals

New in gnuplot 4.4.2 (Sep 27, 2010)

  • Fixes a regression that caused color specification "lc N" to fail
  • Fixes a long-standing clipping error in plots with filled curves
  • Fixes a segfault if a "refresh" commands follows an interrupted replot

New in gnuplot 4.4.1 (Sep 13, 2010)

  • NEW: Support the "%s" format specifier in strftime()
  • NEW: Optional 6th data column in candlesticks style to specific box width
  • NEW: If integer arithmetic i*j or i**j would overflow, return value as a real
  • NEW: "set style circle radius "
  • FIX: autoconfiguration of readline support in OSX
  • FIX: font problems in win terminal
  • FIX: Protect against runaway recursion by limiting depth of nested functions
  • FIX: metapost terminal: Fix inheritance of line thickness by text strings
  • FIX: cairo terminals could segfault on certain enhanced text strings
  • FIX: pdfcairo output to stdout now works
  • FIX: font ",size" in non-enhanced mode postscript terminals
  • FIX: Do a better job of estimating the width of UTF-8 encoded strings
  • FIX: baseline bug in canvas terminal rotation of enhanced text
  • FIX: Allow "with labels" to work for binary input data
  • FIX: update user GPVAL variables after plot in table mode
  • CHANGE: depth-sorting of pm3d surfaces now applies jointly to all in the plot
  • CHANGE: 3D impulses are now always drawn from z=0
  • CHANGE: Enable HIDDEN_QUADTREE by default
  • CHANGE: Enable "set fit errorvariables" by default
  • CHANGE: Regardless of current timefmt, read time from binary files as a binary
  • CHANGE: do not limit 3D rotation to 0

New in gnuplot 4.4.0 RC1 (Nov 29, 2009)

  • smoother graphics based on the pango, cairo, and wxWidgets libraries
  • client-side interactive display using the HTML 5 "canvas" element
  • better internationalization, support for UTF-8 character encoding
  • support for transparency and alpha-channel image generation and handling.
  • extended command line syntax, including iteration
  • new plot styles: circles rgbalpha

New in gnuplot 4.2.5 (Mar 30, 2009)

  • NEW ./configure --with-readline=bsd to use libedit rather than libreadline
  • NEW command line option -e "command; command; command; "
  • NEW 'set xtics rangelimit' allows creation of range/frame plots
  • NEW "set view equal_axes xy{z}" does for 3D what "set size square" does for 2D.
  • CHANGE updated svg terminal driver (back-ported from 4.3 CVS branch)
  • CHANGE fillstyle empty really is consistently empty (not fill-with-background)
  • CHANGE warn that some options to 'set datafile binary' are not implemented
  • CHANGE handling of custom palette in postscript plots set to "monochrome"
  • CHANGE allow Z axis label in 3D plots to be rotated
  • FIX interpolatation for pm3d surfaces given by both z and colour coordinates
  • FIX infinite loop if axis tick increment is on the order of machine precision
  • FIX initialize x11 enhanced text mode to use most recently requested font
  • FIX emf handling of enhanced text at non-zero angle
  • FIX 3D plots with fixed zrange were clipping against xmax rather than zmax
  • FIX handling of uninitialized variables in fit "via" command
  • FIX pm3d depthorder was ignoring interpolation setting
  • FIX assignment of fill patterns to boxes in columnstacked histograms
  • FIX Reserve room for user tic labels even if the format for autoticks is ""
  • FIX bug in 4.2.4 that gave twice the requested left/right margin width

New in gnuplot 4.2.4 (Jan 29, 2009)

  • NEW add support for enhanced text mode in the emf terminal driver
  • NEW builtin functions 'strftime' and 'strptime'
  • NEW set absolute plot margins in screen coordinates
  • NEW "nocontours" keyword for splot
  • NEW "undefine foo" clears previously defined user variable foo
  • NEW allow contouring of pm3d surfaces
  • NEW allow color by z value ("palette z") in 2D plots
  • NEW "pause mouse close" waits until the plot window is closed
  • FIX Do not re-quantize time tics interval explicitly set by user
  • FIX (gd post) don't segfault on very long font names
  • FIX allow variable color from input file for "with boxes", "with vectors"
  • FIX don't run off the end of "set format" commands
  • FIX Fix discontinuity in piecewise approximation of inverse error function
  • FIX discard out of range vectors in the bitmap terminals (pbm, epson, etc)
  • FIX 2nd colour in the colour box for negative palette in postscript
  • FIX insure palette is initialized before any objects are drawn
  • FIX wxt terminal was not obeying "set palette maxcolors"
  • FIX Histograms did not correctly honor 'set style user increment'
  • FIX Avoid segfault if tic labels are requested from a non-existent data column
  • FIX emf terminal - allow fractional linewidth (fixes 0-length dash problem)
  • FIX post terminal - fix parsing error for palfuncparam
  • FIX post terminal - escape {} chars in enhanced text mode
  • FIX clip "splot with labels" against plot boundaries in 2D mode
  • CHANGE try harder to autotitle columns in using specs with expressions
  • CHANGE gd.trm: use dynamically-allocated TTF font names
  • CHANGE x11: more finely sampled color palette for PM3D
  • CHANGE cgm: switch to using web_color_rgbs; approximate RGB colors
  • CHANGE fig: more point types, 4.2-style font and size syntax for "set term"
  • CHANGE emf: separate dashlength option (don't use linewidth for dashlength)
  • CHANGE stacked histograms grow upward for values > 0, downward for values < 0
  • CHANGE 'pause mouse button1' (or button2) does not disable zooming
  • CHANGE built-in readline now tries to recognize and keys

New in gnuplot 4.2.3 (Jun 4, 2008)

  • NEW options front and back to "set colorbox"
  • NEW character encoding support for emf and pdf terminals
  • NEW "format" keyword for "set tics" and "set {x|y|...}tics"
  • NEW allow user to set colorbar label rotatation if the bar is vertical
  • FIX allow tic format to be given as a string variable
  • FIX handling of negative screen coordinates on ia64, PPC
  • FIX coloring of hidden surfaces if drawn with line styles
  • FIX direction of y axis in graph coords for "set view map"
  • FIX minitics in log scale
  • FIX minor bugfixes to terminals fig, emf, post, svg, x11
  • FIX cgm terminal now produces correct pm3d and pattern fill output
  • FIX protect against overly long font names in gd, svg
  • FIX infinite loop from x11 plot window resizing under ion, fluxbox
  • FIX never estimate zero size for a non-empty string
  • FIX discard degenerate polygons during hidden3d processing
  • FIX segfault if replot is called while terminal type is unknown
  • FIX segfault if locale obtained by getenv() is freed
  • FIX discard axis ticks read from previous data file
  • FIX Do not clip image against Z range in 3D splot with "set view map"
  • FIX off-by-one error in implicit column 0 for binary data files
  • FIX splot was trashing the default clipping boundaries for 2D plots
  • CHANGE tweak installation scripts for OSX nt cyg dj2 mgw
  • CHANGE install Xresource file as Gnuplot, not Gnuplot.app-defaults
  • CHANGE Remove limitation of 10 args max to internal function sprintf()
  • CHANGE Bring emf point types into conformity with other terminals
  • CHANGE estimate the space for rotated tick labels on x and x2 axes