15.2.7 Manipulation of Plot Windows

By default, Octave refreshes the plot window when a prompt is printed, or when waiting for input. The drawnow function is used to cause a plot window to be updated.

 
: drawnow ()
: drawnow ("expose")
: drawnow (term, file, debug_file)

Update figure windows and their children.

The event queue is flushed and any callbacks generated are executed.

With the optional argument "expose", only graphic objects are updated and no other events or callbacks are processed.

The third calling form of drawnow is for debugging and is undocumented.

See also: refresh.

Only figures that are modified will be updated. The refresh function can also be used to cause an update of the current figure, even if it is not modified.

 
: refresh ()
: refresh (h)

Refresh a figure, forcing it to be redrawn.

When called without an argument the current figure is redrawn. Otherwise, the figure with graphic handle h is redrawn.

See also: drawnow.

Normally, high-level plot functions like plot or mesh call newplot to determine whether the state of the target axes should be initialized (the default) or if subsequent plots should be drawn on top of previous ones. To have two plots drawn over one another, use the hold function or manually change the axes nextplot property. For example,

hold on;
x = -10:0.1:10;
plot (x, sin (x));
plot (x, cos (x));
hold off;

displays sine and cosine waves on the same axes. If the hold state is off, consecutive plotting commands like this will only display the last plot.

 
: newplot ()
: newplot (hfig)
: newplot (hax)
: hax = newplot (…)

Prepare graphics engine to produce a new plot.

This function is called at the beginning of all high-level plotting functions. It is not normally required in user programs. newplot queries the "NextPlot" field of the current figure and axes to determine what to do.

Figure NextPlotAction
"new"Create a new figure and make it the current figure.
"add" (default)Add new graphic objects to the current figure.
"replacechildren"Delete child objects whose HandleVisibility is set to "on". Set NextPlot property to "add". This typically clears a figure, but leaves in place hidden objects such as menubars. This is equivalent to clf.
"replace"Delete all child objects of the figure and reset all figure properties to their defaults. However, the following four properties are not reset: Position, Units, PaperPosition, PaperUnits. This is equivalent to clf reset.
Axes NextPlotAction
"add"Add new graphic objects to the current axes. This is equivalent to hold on.
"replacechildren"Delete child objects whose HandleVisibility is set to "on", but leave axes properties unmodified. This typically clears a plot, but preserves special settings such as log scaling for axes. This is equivalent to cla.
"replace" (default)Delete all child objects of the axes and reset all axes properties to their defaults. However, the following properties are not reset: Position, Units. This is equivalent to cla reset.

If the optional input hfig or hax is given then prepare the specified figure or axes rather than the current figure and axes.

The optional return value hax is a graphics handle to the created axes object (not figure).

Caution: Calling newplot may change the current figure and current axes.

 
: hold
: hold on
: hold off
: hold (hax, …)

Toggle or set the "hold" state of the plotting engine which determines whether new graphic objects are added to the plot or replace the existing objects.

hold on

Retain plot data and settings so that subsequent plot commands are displayed on a single graph. Line color and line style are advanced for each new plot added.

hold all (deprecated)

Equivalent to hold on.

hold off

Restore default graphics settings which clear the graph and reset axes properties before each new plot command. (default).

hold

Toggle the current hold state.

When given the additional argument hax, the hold state is modified for this axes rather than the current axes returned by gca.

To query the current hold state use the ishold function.

See also: ishold, cla, clf, newplot.

 
: tf = ishold
: tf = ishold (hax)
: tf = ishold (hfig)

Return true if the next plot will be added to the current plot, or false if the plot device will be cleared before drawing the next plot.

If the first argument is an axes handle hax or figure handle hfig then operate on this plot rather than the current one.

See also: hold, newplot.

To clear the current figure, call the clf function. To clear the current axis, call the cla function. To bring the current figure to the top of the window stack, call the shg function. To delete a graphics object, call delete on its index. To close the figure window, call the close function.

 
: clf
: clf reset
: clf (hfig)
: clf (hfig, "reset")
: h = clf (…)

Clear the current figure window.

clf operates by deleting child graphics objects with visible handles (HandleVisibility = "on").

If the optional argument "reset" is specified, delete all child objects including those with hidden handles and reset all figure properties to their defaults. However, the following properties are not reset: Position, Units, PaperPosition, PaperUnits.

If the first argument hfig is a figure handle, then operate on this figure rather than the current figure returned by gcf.

The optional return value h is the graphics handle of the figure window that was cleared.

See also: cla, close, delete, reset.

 
: cla
: cla reset
: cla (hax)
: cla (hax, "reset")

Clear the current or specified (hax) axes object.

cla operates by deleting child graphic objects with visible handles (HandleVisibility = "on"). This typically clears the axes of any visual objects, but leaves in place axes limits, tick marks and labels, camera view, etc. In addition, the automatic coloring and styling of lines is reset by changing the axes properties ColorOrderIndex, LinestyleOrderIndex to 1.

If the optional argument "reset" is specified, delete all child objects, including those with hidden handles, and reset all axes properties to their defaults. However, the following properties are not reset: Position, Units.

If the first argument hax is an axes handle, then operate on this axes rather than the current axes returned by gca.

See also: clf, delete, reset.

 
: shg

Show the graph window.

This function makes the current figure visible, and places it on top of of all other plot windows.

Programming Note: shg is equivalent to figure (gcf) assuming that a current figure exists.

See also: figure, drawnow, gcf.

 
: delete file
: delete file1 file2
: delete (file)
: delete (file1, file2, …)
: delete (handle)

Delete the named file or graphics handle.

file may contain globbing patterns such as ‘*’. Multiple files to be deleted may be specified in the same function call.

handle may be a scalar or vector of graphic handles to delete.

Programming Note: Deleting graphics objects is the proper way to remove features from a plot without clearing the entire figure.

See also: clf, cla, unlink, rmdir.

 
: close
: close (h)
: close figname
: close all
: close all hidden
: close all force
: status = close (…)

Close figure window(s).

When called with no arguments, close the current figure. This is equivalent to close (gcf). If the input h is a graphic handle, or vector of graphics handles, then close each figure in h. The figure to close may also be specified by name figname which is matched against the "Name" property of all figures.

If the argument "all" is given then all figures with visible handles (HandleVisibility = "on") are closed.

If the additional argument "hidden" is given then all figures, including hidden ones, are closed.

If the additional argument "force" is given then figures are closed even when "closerequestfcn" has been altered to prevent closing the window.

If the optional output status is requested then Octave returns 1 if the figure windows were closed successfully.

Implementation Note: close operates by making the handle h the current figure, and then calling the function specified by the "closerequestfcn" property of the figure. By default, the function closereq is used. It is possible that the function invoked will delay or abort removing the figure. To remove a figure without executing any callback functions use delete. When writing a callback function to close a window do not use close to avoid recursion.

See also: closereq, delete.

 
: closereq ()

Close the current figure and delete all graphics objects associated with it.

By default, the "closerequestfcn" property of a new plot figure points to this function.

See also: close, delete.