Gnuplot version 5.0 was initially released in January 2015.
Please see the NEWS and ChangeLog files for a complete list of bug fixes
and minor changes accummulated since then.
These release notes are for version 5.0 patchlevel 7 (5.0.7).
This release contains bug-fixes, a few changes back-ported from the
development version, and a few new features.
This will probably be the final release in the 5.0 series. Development has
shifted to versions 5.2 (next stable release) and 5.3 (development branch).
Release Notes date: 13-Aug-2017
- NEW set term {pngcairo|pdfcairo} pointscale <factor>
- NEW "save fit" back-ported from version 5.2 as a replacement for "update"
- CHANGE deprecate "update" command (but do not remove it)
- CHANGE allow placement of circles in 3D plots using axis coordinates
- CHANGE ignore invalid z coordinate for 3D objects placed in "set view map"
- CHANGE distinguish 'bind "shift-Button1"' from 'bind "Button1"'
- CHANGE use Mingw-w64 and MSVC popen rather than built-in "fake" popen
- FIX rangelimited y2 axis could produce spurious diagonal line across plot
- FIX assignment of x/y dimensions in "binary record=(a,b) ... with image"
- FIX negative array index caused by hidden3d degenerate polygon
- FIX object clipping in "set view map"
- FIX cairo terminals: scale textbox border linewidth by terminal linewidth
- FIX canvas terminal: initialization of plot dimensions (affects first zoom)
- FIX crash in stats if no usable data is found
- FIX do not use LaTeX formatting in tabular output
- FIX additional sanity checks for input data format
- FIX more consistent handling of plot 'with table'
- FIX incorrect, possibly empty, command string was saved for previous fit
- FIX 2D images with logscale axes could fail (segfault)
- FIX nested iteration containing an empty range
The "update" command is deprecated in favor of a new command "save fit".
"update" will continue to be accepted in version 5.0 for compatibility but
will be removed in a later version.
Incremental releases 5.0.1, 5.0.2, etc are primarily intended to provide
bug fixes rather than new features.
Many other additions are described in the "New Features" section of the
documentation.
Gnuplot development assigns very high priority to backward compatibility
with earlier versions. For example any command script that worked in
version 4.0 is expected to continue to work for all version 4 releases
including the most recent one (4.6.6). However changes introduced in
version 5 can affect the operation of some version 4 scripts.
A brief summary of potentially incompatible changes is given here.
- Earlier versions of gnuplot used the keyword "linetype" to mean both
the color and the solid/dot/dash pattern of a line. Version 5 has
separate keywords "linecolor" and "dashtype". You can use these keywords
directly in a plot command or assign any desired color and a dash pattern
to a linetype. The program now provides a default set of 8 linetypes, all solid.
You can change these or add new linetypes as you please. You do not need
to change the current terminal or terminal mode in order to use dashed lines.
- The handling of input data containing NaN, Inf, an inconsistent number of
data columns, or other unexpected content has changed. See documentation
under "missing" for examples and figures.
- Time coordinates are stored internally as the number of seconds relative
to the standard unix epoch 1-Jan-1970. Earlier versions of gnuplot used
a different epoch internally (1-Jan-2000). This change resolves
inconsistencies introduced when time in seconds was generated externally.
The epoch convention used by a particular gnuplot installation can be
determined using the command `print strftime("%F",0)`.
Time is now stored to at least millisecond precision.
- The function `timecolumn(N,"timeformat")` now has 2 parameters.
Because the second parameter is not associated with any particular data axis,
this allows using the `timecolumn` function to read time data for reasons
other than specifying the x or y coordinate. Use of time formats
to generate axis tick labels is now controlled by "set {xy}tics time" rather
than by "set {xy}data time". Thus prior calls to `set xdata time` or
`set timefmt x` are unnecessary for either input or output.
These older commands still work, but are deprecated.
- The "reverse" keyword (e.g. "set xrange [*:*] reverse") now affects only
autoscaling. It has no effect on explicit ranges.
"set xrange [0:1] reverse" is not the same as "set xrange [1:0]".
- Options to the "fit" command are now given by "set fit ..." rather than
by setting environmental variables. Fit can handle up to MAX_NUM_VAR
independent variables (currently 12). Variables other than the first
two (x, y) have been dissociated from axis names. This means, for example,
"set urange [U1:U2]" has no effect on fitting because "u" is not a fit
variable. Use the command "set dummy ..." to assign names to fit variables
3 ... 12.
- The `call` command is implemented by providing a set of variables ARGC,
ARG0, ..., ARG9. ARG0 holds the name of the script file being executed.
ARG1 to ARG9 are string variables and thus may either be referenced directly
or expanded as macros, e.g. @ARG1. The older convention for referencing
call parameters as tokens $0 ... $9 is deprecated.
- "unset xrange" (and other axis ranges) restores the default range.
- "unset terminal" restores the original terminal of the current session.
- Macro substitution is always enabled. I.e. "set/unset macros" has no effect.
Demo plots illustrating new and old features are online at
http://gnuplot.sourceforge.net/demo_5.0/
- If you configure in the wxt terminal without also configuring in X11,
you may need to set the environmental variable TERMLIBS:
TERMLIBS="-lX11" ./configure
Version 3.0.0 of the wxgtk library is buggy; please use a newer version.
- Compilation on Solaris may require adding -liconv to LIB_FLAGS
Building the plugin demo with a SunPro Compiler requires changing the
build flags as shown in comments in ./demo/plugin/Makefile.am
- Font initialization on OSX can be very slow, causing the qt terminal to
issue warning or error messages for the first plot command.
- The antialiasing option produces artifacts in some versions of Qt.
In particular point types 1 and 2 appear unbalanced due to shading.
- You can configure support for both wxt and qt into the same gnuplot
executable, but only one of these two output modes can be used in any
given gnuplot session.
- The gnuplot build system is not very good at figuring out where to find
or install LaTeX-related files. This can affect use of the lua/tikz
and ConTeXt terminals.
- Using mouse clicks to toggle individual plots on/off does not always
work correctly for multiplots if the key box is opaque.
Toggling plots drawn in hidden3d mode (hidden line removal) does not work.
- Mouse double-click to export terminal coordinates to the X11 clipboard
no longer works reliably, and may be deprecated in the future.
The "gnuplot mode" elisp and TeX files for use with emacs are now
maintained as a separate project: https://github.com/bruceravel/gnuplot-mode
so there is no longer a configuration option --with-lisp-files.
The TeX tutorial produced by --with-tutorial is horribly out of date.
./configure --enable-backwards-compatibility will allow use of some
deprecated syntax from old gnuplot versions. However the result of
using these deprecated commands may not match the old version output.
The 5.0 source code supports three primary cross-platform output modes
in addition to several platform-specific modes.
- Qt
The qt terminal supports interactive display with menu-driven
output to png, svg or pdf. If either Qt4 or Qt5 is detected by the
configure script, this will be the default terminal. It is now the
fastest and most full-featured interactive terminal option.
To disable this terminal:
./configure --without-qt
To force use of Qt4 even if Qt5 is present:
./configure --with-qt=qt4
- Cairo/pango/wxWidgets
This set of terminals includes
- X11 (the "classic" interactive interface)
This used to be the preferred interactive interface, but the newer
wxt and qt terminals offer nicer output and a wider range of features.
Of course the terminals (output modes) present in previous gnuplot versions
are also still available. These include, among many more obscure options:
- Mouseable output for display on the web can be created using either
the canvas terminal (HTML5 2D canvas element) or the svg terminal.
Both allow zooming, toggling plot elements on/off, and user-scriptable
hot keys.
You can download a source tarball for gnuplot version 5.0.7 from the
gnuplot development site on SourceForge.
http://sourceforge.net/projects/gnuplot
Installation instructions are available in the source itself; the short
version for linux/unix-like systems is to unpack the tarball and then
build it:
cd gnuplot-5.0.7 ; ./configure ; make
test it:
make check
install it:
make install
Pay careful attention to the output of the ./configure script.
It may indicate that some output drivers have been omitted because the
necessary support libraries were not found. In general you need to have
previously installed the "-devel-" versions of these libraries.
Please report all bugs and installation problems to the bug tracker
on SourceForge:
http://sourceforge.net/p/gnuplot/bugs/
There is also an gnuplot discussion forum on usenet group
comp.graphics.apps.gnuplot
Gnuplot development is ongoing. The development branch on SourceForge
contains preliminary implementations of new features.
The source for version 5.0 is held in a separate branch of the CVS repository
tagged as "branch-5-0-stable". Development continues in the main branch using
the version number 5.1 (odd minor number), for eventual release as stable
version 5.2 (even minor number). Bugfixes to version 5.0 will appear in
patchlevel releases 5.0.1, 5.0.2, etc., approximately twice a year or
as needed to correct a serious problem.