# HG changeset patch
# User Markus Mützel
# Date 1604062691 3600
# Fri Oct 30 13:58:11 2020 +0100
# Branch stable
# Node ID 62968bc06421f84696e394d60d237485dc0373b0
# Parent 139df373c107c4f3c2324b194fd99d55b8daf181
doc: Clarify nature and limitations of gnuplot graphics toolkit (bug #59370).
diff r 139df373c107 r 62968bc06421 doc/interpreter/plot.txi
 a/doc/interpreter/plot.txi Fri Jun 12 22:13:04 2020 +0200
+++ b/doc/interpreter/plot.txi Fri Oct 30 13:58:11 2020 +0100
@@ 31,23 +31,31 @@
@node Introduction to Plotting
@section Introduction to Plotting
Earlier versions of Octave provided plotting through the use of
gnuplot. This capability is still available. But, a newer plotting
capability is provided by access to OpenGL@. Which plotting system
is used is controlled by the @code{graphics_toolkit} function.
@xref{Graphics Toolkits}.

The function call @code{graphics_toolkit ("qt")} selects the
Qt/OpenGL system, @code{graphics_toolkit ("fltk")} selects the
FLTK/OpenGL system, and @code{graphics_toolkit ("gnuplot")} selects the
gnuplot system. The three systems may be used selectively through the use
of the @code{graphics_toolkit} property of the graphics handle for each
figure. This is explained in @ref{Graphics Data Structures}.
@strong{Caution:} The OpenGLbased toolkits use single precision
variables internally which limits the maximum value that can be
displayed to approximately @math{10^{38}}. If your data contains larger
values you must use the gnuplot toolkit which supports values up to
@math{10^{308}}.
+Earlier versions of Octave provided plotting through the use of gnuplot. This
+capability is still available. But, newer versions of Octave offer more modern
+plotting capabilities using OpenGL@. Which plotting system is used is
+controlled by the @code{graphics_toolkit} function. @xref{Graphics Toolkits}.
+
+The function call @code{graphics_toolkit ("qt")} selects the Qt/OpenGL system,
+@code{graphics_toolkit ("fltk")} selects the FLTK/OpenGL system, and
+@code{graphics_toolkit ("gnuplot")} selects the gnuplot system. The three
+systems may be used selectively through the use of the @code{graphics_toolkit}
+property of the graphics handle for each figure. This is explained in
+@ref{Graphics Data Structures}.
+
+@strong{Caution:} The OpenGLbased toolkits use single precision variables
+internally which limits the maximum value that can be displayed to approximately
+@math{10^{38}}. If your data contains larger values you must use the gnuplot
+toolkit which supports values up to @math{10^{308}}. Similarly, values that do
+not differ in the 23 bit mantissa of single precision floating point numbers
+cannot be resolved with the OpenGLbased graphics toolkits.
+
+@strong{Note:} The gnuplot graphics toolkit uses the third party program gnuplot
+for plotting. The communication from Octave to gnuplot is done via a oneway
+pipe. That means that Octave has no way of knowing of user interaction with the
+plot window (be it resizing, moving, closing or anything else). It is
+recommended to not interact with (or close) a gnuplot window if you plan on
+accessing the respective figure from Octave later on.
@node HighLevel Plotting
@section HighLevel Plotting