#### 15.3.3.2 Figure Properties ¶

Properties of `figure` objects (see figure):

#### Categories: ¶

Appearance | Callback Execution | Creation/Deletion | Display | Keyboard Interaction | Mouse Interaction | Object Identification | Object Position | Parent/Children | Printing/Saving | Unused

#### Appearance ¶

`alphamap`: def. 64-by-1 double ¶

  Transparency is not yet implemented for figure objects. `alphamap` is unused.

`color`: colorspec, def. `[1 1 1]` ¶

  Color of the figure background. See colorspec.

`colormap`: N-by-3 matrix, def. 256-by-3 double ¶

  A matrix containing the RGB color map for the current axes.

`graphicssmoothing`: `"off"` | {`"on"`} ¶

  Use smoothing techniques to reduce the appearance of jagged lines.

`name`: string, def. `""` ¶

  Name to be displayed in the figure title bar. The name is displayed to the right of any title determined by the `numbertitle` property.

`numbertitle`: `"off"` | {`"on"`} ¶

  Display `"Figure"` followed by the numerical figure handle value in the figure title bar.

#### Callback Execution ¶

`busyaction`: `"cancel"` | {`"queue"`} ¶

  Define how Octave handles the execution of this object’s callback properties when it is unable to interrupt another object’s executing callback. This is only relevant when the currently executing callback object has its `interruptible` property set to `"off"`. The `busyaction` property of the interrupting callback object indicates whether the interrupting callback is queued (`"queue"` (default)) or discarded (`"cancel"`). See Callbacks section.

`interruptible`: `"off"` | {`"on"`} ¶

  Specify whether this object’s callback functions may be interrupted by other callbacks. By default `interruptible` is `"on"` and callbacks that make use of `drawnow`, `figure`, `waitfor`, `getframe` or `pause` functions are eventually interrupted. See Callbacks section.

#### Creation/Deletion ¶

`beingdeleted`: {`"off"`} | `"on"` ¶

  Property indicating that a function has initiated deletion of the object. `beingdeleted` is set to true until the object no longer exists.

`closerequestfcn`: string | function handle, def. `"closereq"` ¶

  Function that is executed when a figure is deleted. See closereq function.

  For information on how to write graphics listener functions see Callbacks section.

`createfcn`: string | function handle, def. `[](0x0)` ¶

  Callback function executed immediately after figure has been created. Function is set by using default property on root object, e.g., `set (groot, "defaultfigurecreatefcn", 'disp ("figure created!")')`.

  For information on how to write graphics listener functions see Callbacks section.

`deletefcn`: string | function handle, def. `[](0x0)` ¶

  Callback function executed immediately before figure is deleted.

  For information on how to write graphics listener functions see Callbacks section.

#### Display ¶

`visible`: `"off"` | {`"on"`} ¶

  If `visible` is `"off"`, the figure is not rendered on screen.

`windowstate`: `"fullscreen"` | `"maximized"` | `"minimized"` | {`"normal"`} ¶

  Window state adjustment is not yet implemented for figure objects. `windowstate` is unused.

`windowstyle`: `"docked"` | `"modal"` | {`"normal"`} ¶

  The window style of a figure. One of the following values:

  `normal`

    The window may be unselected and other windows may be shown in front of the window.

  `modal`

    The window will stay on top of all normal figures until it is dismissed.

  `docked`

    Unimplemented.

  Changing modes of a visible figure may cause the figure to close and reopen.

#### Keyboard Interaction ¶

`keypressfcn`: string | function handle, def. `[](0x0)` ¶

  Callback function executed when a keystroke event happens while the figure has focus. The actual key that was pressed can be retrieved using the second argument ’evt’ of the function.

  For information on how to write graphics listener functions see Callbacks section.

`keyreleasefcn`: string | function handle, def. `[](0x0)` ¶

  With `keypressfcn`, the keyboard callback functions. These callback functions are called when a key is pressed/released respectively. The functions are called with two input arguments. The first argument holds the handle of the calling figure. The second argument holds an event structure which has the following members:

  `Character:`

    The ASCII value of the key

  `Key:`

    Lowercase value of the key

  `Modifier:`

    A cell array containing strings representing the modifiers pressed with the key.

  For information on how to write graphics listener functions see Callbacks section.

`windowkeypressfcn`: string | function handle, def. `[](0x0)` ¶

  Function that is executed when a key is pressed and the figure has focus.

  For information on how to write graphics listener functions see Callbacks section.

`windowkeyreleasefcn`: string | function handle, def. `[](0x0)` ¶

  Function that is executed when a key is released and the figure has focus.

  For information on how to write graphics listener functions see Callbacks section.

#### Mouse Interaction ¶

`buttondownfcn`: string | function handle, def. `[](0x0)` ¶

  For information on how to write graphics listener functions see Callbacks section.

`contextmenu`: graphics handle, def. `[](0x0)` ¶

  Graphics handle of the uicontextmenu object that is currently associated to this figure object.

`currentpoint` (read-only): two-element vector, def. `[0; 0]` ¶

  A 1-by-2 vector which holds the coordinates of the point over which the mouse pointer was when a mouse event occurred. The X and Y coordinates are in units defined by the figure’s `units` property and their origin is the lower left corner of the plotting area.

  Events which set `currentpoint` are

  A mouse button was pressed

    always

  A mouse button was released

    only if the figure’s callback `windowbuttonupfcn` is defined

  The pointer was moved while pressing the mouse button (drag)

    only if the figure’s callback `windowbuttonmotionfcn` is defined

`hittest`: `"off"` | {`"on"`} ¶

  Specify whether figure processes mouse events or passes them to ancestors of the object. When enabled, the object may respond to mouse clicks by evaluating the `"buttondownfcn"`, showing the uicontextmenu, and eventually becoming the root `"currentobject"`. This property is only relevant when the object can accept mouse clicks which is determined by the `"pickableparts"` property. See pickableparts property.

`menubar`: {`"figure"`} | `"none"` ¶

  Control the display of the figure menu bar at the top of the figure.

`pointer`: {`"arrow"`} | `"botl"` | `"botr"` | `"bottom"` | `"circle"` | `"cross"` | `"crosshair"` | `"custom"` | `"fleur"` | `"hand"` | `"ibeam"` | `"left"` | `"right"` | `"top"` | `"topl"` | `"topr"` | `"watch"` ¶

  Name of the mouse pointer shape associated with the canvas of the figure. When `pointer` is `"custom"`, the shape is determined by the `pointershapecdata` property.

  `pointer` has no effect when the figure is in zoom, pan, or rotate mode. In this case, Octave automatically uses a pointer shape appropriate to the mode.

`pointershapecdata`: 16-by-16 or 32-by-32 Matrix, def. 16-by-16 double ¶

  m-by-m matrix defining a custom pointer. Each element defines a pixel with the element (1,1) representing the top-left pixel. A value of 1 is colored black, a value of 2 is colored white, and all other values are rendered as transparent.

`pointershapehotspot`: two-element vector, def. `[1 1]` ¶

  For custom pointers only `pointershapehotspot` defines the row and column of the pixel in `pointershapecdata` that is used as the pointer location.

`resize`: `"off"` | {`"on"`} ¶

  Control whether the figure can be resized by dragging the window borders and corners using a mouse. When `resize` is `"off"` mouse interactions are disabled but the figure can still be resized by changing its `"position"` property.

`resizefcn`: string | function handle, def. `[](0x0)` ¶

  `resizefcn` is deprecated. Use `sizechangedfcn` instead.

`selected`: {`"off"`} | `"on"` ¶

  Property indicates whether this figure is selected.

`selectionhighlight`: `"off"` | {`"on"`} ¶

  If `selectionhighlight` is `"on"`, then the figure’s selection state is visually highlighted.

`selectiontype`: `"alt"` | `"extend"` | {`"normal"`} | `"open"` ¶

  Selection type of the latest mouse click.

  `selectiontype` may take different values depending on the combination of mouse button and keyboard modifier that were used:

  `normal:`

    Left-click.

  `alt:`

    Right-click or Ctrl+Left-click.

  `extend:`

    Shift+Left-click, Middle click, or combined Left-click and Right-click.

  `open:`

    Double Left-click.

`sizechangedfcn`: string | function handle, def. `[](0x0)` ¶

  Callback triggered when the figure window size is changed.

  For information on how to write graphics listener functions see Callbacks section.

`toolbar`: {`"auto"`} | `"figure"` | `"none"` ¶

  Control the display of the toolbar (along the bottom of the menubar) and the status bar. When set to `"auto"`, the display is based on the value of the `"menubar"` property.

`windowbuttondownfcn`: string | function handle, def. `[](0x0)` ¶

  See windowbuttonupfcn property.

`windowbuttonmotionfcn`: string | function handle, def. `[](0x0)` ¶

  See windowbuttonupfcn property.

`windowbuttonupfcn`: string | function handle, def. `[](0x0)` ¶

  With `windowbuttondownfcn` and `windowbuttonmotionfcn`, the mouse callback functions. These callback functions are called when a mouse button is pressed, dragged, or released respectively. When these callback functions are executed, the `currentpoint` property holds the current coordinates of the cursor.

  For information on how to write graphics listener functions see Callbacks section.

`windowscrollwheelfcn`: string | function handle, def. `[](0x0)` ¶

  Function that is executed when a user manipulates the mouse wheel over this figure. The function is called with two input arguments. The first argument holds the handle of the calling figure. The second argument holds an event structure which has the following members:

  `VerticalScrollCount:`

    The number of wheel steps, typically 1 when scrolling down and -1 when scrolling up.

  `VerticalScrollAmount:`

    The number of lines a wheel step should scroll. This value is always 3.

  `EventName:`

    The event name which is `"WindowScrollWheel"`.

  For information on how to write graphics listener functions see Callbacks section.

#### Object Identification ¶

`currentaxes`: graphics handle, def. `[](0x0)` ¶

  Handle to the graphics object of the current axes.

`currentcharacter` (read-only): def. `""` ¶

  Tracking of the last key pressed is not yet implemented for figure objects. `currentcharacter` is unused.

`currentobject` (read-only): graphics handle, def. `[](0x0)` ¶

  Handle to the most recently active graphics object in the figure.

`integerhandle`: `"off"` | {`"on"`} ¶

  Assign the next lowest unused integer as the Figure number.

`nextplot`: {`"add"`} | `"new"` | `"replace"` | `"replacechildren"` ¶

  `nextplot` is used by high level plotting functions to decide what to do with axes already present in the figure. See newplot function.

`number` (read-only): double ¶

  Number of the current figure.

`tag`: string, def. `""` ¶

  A user-defined string to label the graphics object.

`type` (read-only): string ¶

  Class name of the graphics object. `type` is always `"figure"`.

`userdata`: Any Octave data, def. `[](0x0)` ¶

  User-defined data to associate with the graphics object.

#### Object Position ¶

`dockcontrols`: `"off"` | {`"on"`} ¶

  Interactive figure docking is not yet implemented for figure objects. `dockcontrols` is unused.

`innerposition`: four-element vector, def. `[300 200 560 420]` ¶

  The `"innerposition"` property is the same as the `"position"` property.

`outerposition`: four-element vector, def. `[-1 -1 -1 -1]` ¶

  Specify the position and size of the figure including the top menubar and the bottom status bar. The four elements of the vector are the coordinates of the lower left corner and width and height of the figure. See units property.

`position`: four-element vector, def. `[300 200 560 420]` ¶

  Specify the position and size of the figure canvas. The four elements of the vector are the coordinates of the lower left corner and width and height of the figure. See units property.

`units`: `"centimeters"` | `"characters"` | `"inches"` | `"normalized"` | {`"pixels"`} | `"points"` ¶

  The unit used to compute the position and outerposition properties.

#### Parent/Children ¶

`children` (read-only): vector of graphics handles, def. `[](0x1)` ¶

  Graphics handles of the figure’s children.

`handlevisibility`: `"callback"` | `"off"` | {`"on"`} ¶

  If `handlevisibility` is `"off"`, the figure’s handle is not visible in its parent’s `"children"` property.

`parent`: graphics handle, def. `0` ¶

  Handle of the parent graphics object.

#### Printing/Saving ¶

`filename`: string, def. `""` ¶

  The filename used when saving the plot figure.

`inverthardcopy`: `"off"` | {`"on"`} ¶

  Replace the figure and axes background color with white when printing.

`paperorientation`: `"landscape"` | {`"portrait"`} ¶

  The value for the `papersize`, and `paperposition` properties depends upon `paperorientation`. The horizontal and vertical values for `papersize` and `paperposition` reverse order when `paperorientation` is switched between `"portrait"` and `"landscape"`.

`paperposition`: four-element vector, def. `[1.3422 3.3191 5.8156 4.3617]` ¶

  Vector `[left bottom width height]` defining the position and size of the figure (in `paperunits` units) on the printed page. The position `[left bottom]` defines the lower left corner of the figure on the page, and the size is defined by `[width height]`. For output formats not implicitly rendered on paper, `width` and `height` define the size of the image and the position information is ignored. Setting `paperposition` also forces the `paperpositionmode` property to be set to `"manual"`.

`paperpositionmode`: {`"auto"`} | `"manual"` ¶

  If `paperpositionmode` is set to `"auto"`, the `paperposition` property is automatically computed: the printed figure will have the same size as the on-screen figure and will be centered on the output page. Setting the `paperpositionmode` to `"auto"` does not modify the value of the `paperposition` property.

`papersize`: two-element vector, def. `[8.5000 11.0000]` ¶

  Vector `[width height]` defining the size of the paper for printing. Setting the `papersize` property to a value, not associated with one of the defined `papertypes` and consistent with the setting for `paperorientation`, forces the `papertype` property to the value `"<custom>"`. If `papersize` is set to a value associated with a supported `papertype` and consistent with the `paperorientation`, the `papertype` value is modified to the associated value.

`papertype`: `"<custom>"` | `"a"` | `"a0"` | `"a1"` | `"a2"` | `"a3"` | `"a4"` | `"a5"` | `"arch-a"` | `"arch-b"` | `"arch-c"` | `"arch-d"` | `"arch-e"` | `"b"` | `"b0"` | `"b1"` | `"b2"` | `"b3"` | `"b4"` | `"b5"` | `"c"` | `"d"` | `"e"` | `"tabloid"` | `"uslegal"` | {`"usletter"`} ¶

  Name of the paper used for printed output. Setting `papertype` also changes `papersize`, while maintaining consistency with the `paperorientation` property.

`paperunits`: `"centimeters"` | {`"inches"`} | `"normalized"` | `"points"` ¶

  The unit used to compute the `paperposition` property. The conversion from physical units (e.g., `"inches"`) is dependent on the `screenpixelsperinch` property of the root object.

`renderer`: {`"opengl"`} | `"painters"` ¶

  Rendering engine used for printing when `renderermode` is `"manual"`. Setting `renderer` also forces the `renderermode` property to be set to `"manual"`.

`renderermode`: {`"auto"`} | `"manual"` ¶

  Control whether the rendering engine used for printing is chosen automatically or specified by the `renderer` property. See print function.

#### Unused ¶

`clipping`: `"off"` | {`"on"`} ¶

  `clipping` is unused.

`pickableparts` (read-only): `"all"` | `"none"` | {`"visible"`} ¶

  `pickableparts` is unused.