## AXISPROPERTIES Axis Object Properties

Section: Handle-Based Graphics

### Usage

Below is a summary of the properties for the axis.

- `activepositionproperty` - `four vector` - Not used.
- `alim` - `two vector` - Controls the mapping of transparency. The vector `[a_1,a_2]`@ defines the scale for transparency. Plots then map `a_1` to a completely opaque value, and `a_2` to a completely transparent value. This mapping is applied to the alpha data of the plot data.
- `alimmode` - `{'auto','manual'}` - For `auto` mode, we map the alpha ranges of all objects in the plot to a full scale. For `manual` mode, we use the `alim` vector.
- `ambientlightcolor` - `colorspec` - Not used.
- `box` - `On/Off` - Not used.
- `cameraposition` - `three vector` - Set the position for the camera in axis space.
- `camerapositionmode` - `{'auto','manual'}` - For `manual` mode, the camera position is picked up from the `cameraposition` vector. For `auto` mode, the camera position is set to be centered on the `x` and `y` axis limits, and beyond the `z` maximum limit.
- `cameratarget` - `three vector` - Defines the point in axis space that the camera is targetted at.
- `cameratargetmode` - `{'auto','manual'}` - For `manual` mode the camera target is picked up from the `cameratarget` vector. For `auto` mode, the camera target is chosen to be the center of the three axes.
- `cameraupvector` - `three vector` - Defines the upwards vector for the camera (what is ultimately mapped to the vertical axis of the plot or screen). This vector must not be parallel to the vector that is defined by the optical axis (i.e., the one connecting the target to the camera position).
- `cameraupvectormode` - `{'auto','manual'}` - For `manual` mode, the camera up vector is picked up from the `cameraupvector`. The `auto` mode chooses the up vector to point along the positive `y` axis.
- `cameraviewangle` - `scalar` - Not used.
- `cameraviewanglemode` - `{'auto','manual'}` - Not used.
- `children` - `vector of handles` - A vector containing handles to children of the current axis. Be careful as to how you manipulate this vector. FreeMat uses a reference counting mechanism for graphics objects, so if you remove a handle from the `children` property of an axis, and you have not added it to the `children` property of another object, it will be deleted.
- `clim` - `two vector` - The color range vector. This vector contains two values that dictate how children of this axis get mapped to the colormap. Values between the two endpoints of this vector are mapped to the extremes of the colormap.
- `climmode` - `{'auto','manual'}` - For `auto` mode, the color limits are chosen to span the colordata for all of the children objects. For `manual` mode, the color mapping is based on `clim`.
- `clipping` - `{'on','off'}` - Not used.
- `color` - `colorspec` - The color used to draw the background box for the axes. Defaults to white.
- `colororder` - `color vector` - A vector of color specs (in RGB) that are cycled between when drawing line plots into this axis. The default is order blue,green,red,cyan,magenta,yellow,black.
- `datalimits` - `six vector` - A vector that contains the x, y and z limits of the data for children of the current axis. Changes to this property are ignored - it is calculated by FreeMat based on the datasets.
- `dataaspectratio` - `three vector` - A vector that describes the aspect ratio of the data. You can think of this as the relative scaling of units for each axis. For example, if one unit along the x axis is twice as long as one unit along the y axis, you would specify a data aspect ratio of `[2,1,1]`.
- `dataaspectratiomode` - `{'auto','manual'}` - When the data aspect ratio is set to `manual`, the data is scaled by the data aspect ratio before being plotted. When the data aspect ratio mode is `auto` a complex set of rules are applied to determine how the data should be scaled. If `dataaspectratio` mode is `auto` and `plotboxaspectratio` is `auto`, then the default data aspect ratio is set to `[1,1,1]` and the default plot box aspect ratio is chosen proportional to `[xrange,yrange,zrange]`, where `xrange` is the span of data along the `x` axis, and similarly for `yrange` and `zrange`. If `plotboxaspectratio` is set to `[px,py,pz]`, then the `dataaspectratio` is set to `[xrange/px,yrange/py,zrange/pz]`. If one of the axes has been specified manually, then the data will be scaled to fit the axes as well as possible.
- `fontangle` - `{'normal','italic','oblique'}` - The angle of the fonts used for text labels (e.g., tick labels).
- `fontsize` - `scalar` - The size of fonts used for text labels (tick labels).
- `fontunits` - Not used.
- `fontweight` - `{'normal','bold','light','demi'}` - The weight of the font used for tick labels.
- `gridlinestyle` - `{'-','--',':','-.','none'}` - The line style to use for drawing the grid lines. Defaults to `':'`.
- `handlevisibility` - Not used.
- `hittest` - Not used.
- `interruptible` - Not used.
- `layer` - Not used.
- `linestyleorder` - `linestyle vector` - A vector of linestyles that are cycled through when plotted line series.
- `linewidth` - `scalar` - The width of line used to draw grid lines, axis lines, and other lines.
- `minorgridlinestyle` - `{'-','--',':','-.','none'}` - The line style used for drawing grid lines through minor ticks.
- `nextplot` - `{'add','replace','replacechildren'}` - Controls how the next plot interacts with the axis. If it is set to `'add'` the next plot will be added to the current axis. If it is set to `'replace'` the new plot replaces all of the previous children.
- `outerposition` - `four vector` - Specifies the coordinates of the outermost box that contains the axis relative to the containing figure. This vector is in normalized coordinates and corresponds to the `x, y, width, height` coordinates of the box.
- `parent` - `handle` - The handle for the containing object (a figure).
- `plotboxaspectratio` - `three vector` - Controls the aspect ratio of the plot box. See the entry under `dataaspectratio` for details on how FreeMat uses this vector in combination with the axis limits and the `plotboxaspectratio` to determine how to scale the data.
- `plotboxaspectratiomode` - `{'auto','manual'}` - The plot box aspect ratio mode interacts with the `dataaspectratiomode` and the axis limits.
- `position` - `fourvector` - The normalized coordinates of the plot box space. Should be inside the rectable defined by `outerposition`.
- `projection` - Not used.
- `selected` - Not used.
- `selectionhighlight` - Not used.
- `tag` - A string that can be set to tag the axes with a name.
- `textheight` - `scalar` - This value is set by FreeMat to the height of the current font in pixels.
- `tickdir` - `{'in','out'}` - The direction of ticks. Defaults to `'in'` for 2D plots, and `'out'` for 3D plots if `tickdirmode` is `auto`.
- `tickdirmode` - `{'auto','manual'}` - When set to `'auto'` the `tickdir` defaults to `'in'` for 2D plots, and `'out'` for 3D plots.
- `ticklength` - `two vector` - The first element is the length of the tick in 2D plots, and the second is the length of the tick in the 3D plots. The lengths are described as fractions of the longer dimension (width or height).
- `tightinset` - Not used.
- `title` - `handle` - The handle of the label used to represent the title of the plot.
- `type` - `string` - Takes the value of `'axes'` for objects of the axes type.
- `units` - Not used.
- `userdata` - `array` - An arbitrary array you can set to anything you want.
- `visible` - `{'on','off'}` - If set to `'on'` the axes are drawn as normal. If set to `'off'`, only the children of the axes are drawn. The plot box, axis lines, and tick labels are not drawn.
- `xaxislocation` - `{'top','bottom'}` - Controls placement of the x axis.
- `yaxislocation` - `{'left','right'}` - Controls placement of the y axis.
- `xcolor` - `colorspec` - The color of the x elements including the the x axis line, ticks, grid lines and tick labels
- `ycolor` - `colorspec` - The color of the y elements including the the y axis line, ticks, grid lines and tick labels.
- `zcolor` - `colorspec` - The color of the z elements including the the z axis line, ticks, grid lines and tick labels.
- `xdir` - `{'normal','reverse'}` - For `normal`, axes are drawn as you would expect (e.g, in default 2D mode, the x axis has values increasing from left to right. For `reverse`, the x axis has values increasing from right to left.
- `ydir` - `{'normal','reverse'}` - For `normal`, axes are drawn as you would expect (e.g, in default 2D mode, the y axis has values increasing from bottom to top. For `reverse`, the y axis has values increasing from top to bottom.
- `zdir` - `{'normal','reverse'}` - For `normal`, axes are drawn as you would expect. In default 3D mode, the z axis has values increasing in some direction (usually up). For `reverse` the z axis increases in the opposite direction.
- `xgrid` - `{'on','off'}` - Set to `on` to draw grid lines from ticks on the x axis.
- `ygrid` - `{'on','off'}` - Set to `on` to draw grid lines from ticks on the y axis.
- `zgrid` - `{'on','off'}` - Set to `on` to draw grid lines from ticks on the z axis.
- `xlabel` - `handle` - The handle of the text label attached to the x axis. The position of that label and the rotation angle is computed automatically by FreeMat.
- `ylabel` - `handle` - The handle of the text label attached to the y axis. The position of that label and the rotation angle is computed automatically by FreeMat.
- `zlabel` - `handle` - The handle of the text label attached to the z axis. The position of that label and the rotation angle is computed automatically by FreeMat.
- `xlim` - `two vector` - Contains the limits of the data along the x axis. These are set automatically for `xlimmode`. When manually set it allows you to zoom into the data. The first element of this vector should be the smallest x value you want mapped to the axis, and the second element should be the largest.
- `ylim` - `two vector` - Contains the limits of the data along the y axis. These are set automatically for `ylimmode`. When manually set it allows you to zoom into the data. The first element of this vector should be the smallest y value you want mapped to the axis, and the second element should be the largest.
- `zlim` - `two vector` - Contains the limits of the data along the z axis. These are set automatically for `zlimmode`. When manually set it allows you to zoom into the data. The first element of this vector should be the smallest z value you want mapped to the axis, and the second element should be the largest.
- `xlimmode` - `{'auto','manual'}` - Determines if `xlim` is determined automatically or if it is determined manually. When determined automatically, it is chosen to span the data range (at least).
- `ylimmode` - `{'auto','manual'}` - Determines if `ylim` is determined automatically or if it is determined manually. When determined automatically, it is chosen to span the data range (at least).
- `zlimmode` - `{'auto','manual'}` - Determines if `zlim` is determined automatically or if it is determined manually. When determined automatically, it is chosen to span the data range (at least).
- `xminorgrid` - `{'on','off'}` - Set to `on` to draw grid lines from minor ticks on the x axis.
- `yminorgrid` - `{'on','off'}` - Set to `on` to draw grid lines from minor ticks on the y axis.
- `zminorgrid` - `{'on','off'}` - Set to `on` to draw grid lines from minor ticks on the z axis.
- `xscale` - `{'linear','log'}` - Determines if the data on the x axis is linear or logarithmically scaled.
- `yscale` - `{'linear','log'}` - Determines if the data on the y axis is linear or logarithmically scaled.
- `zscale` - `{'linear','log'}` - Determines if the data on the z axis is linear or logarithmically scaled.
- `xtick` - `vector` - A vector of x coordinates where ticks are placed on the x axis. Setting this vector allows you complete control over the placement of ticks on the axis.
- `ytick` - `vector` - A vector of y coordinates where ticks are placed on the y axis. Setting this vector allows you complete control over the placement of ticks on the axis.
- `ztick` - `vector` - A vector of z coordinates where ticks are placed on the z axis. Setting this vector allows you complete control over the placement of ticks on the axis.
- `xticklabel` - `string vector` - A string vector, of the form `'string`string|string'| that contains labels to assign to the labels on the axis. If this vector is shorter than `xtick`, then FreeMat will cycle through the elements of this vector to fill out the labels.
- `yticklabel` - `string vector` - A string vector, of the form `'string`string|string'| that contains labels to assign to the labels on the axis. If this vector is shorter than `ytick`, then FreeMat will cycle through the elements of this vector to fill out the labels.
- `zticklabel` - `string vector` - A string vector, of the form `'string`string|string'| that contains labels to assign to the labels on the axis. If this vector is shorter than `ztick`, then FreeMat will cycle through the elements of this vector to fill out the labels.
- `xtickmode` - `{'auto','manual'}` - Set to `'auto'` if you want FreeMat to calculate the tick locations. Setting `'xtick'` will cause this property to switch to `'manual'`.
- `ytickmode` - `{'auto','manual'}` - Set to `'auto'` if you want FreeMat to calculate the tick locations. Setting `'ytick'` will cause this property to switch to `'manual'`.
- `ztickmode` - `{'auto','manual'}` - Set to `'auto'` if you want FreeMat to calculate the tick locations. Setting `'ztick'` will cause this property to switch to `'manual'`.
- `xticklabelmode` - `{'auto','manual'}` - Set to `'auto'` if you want FreeMat to set the tick labels. This will be based on the vector `xtick`.
- `yticklabelmode` - `{'auto','manual'}` - Set to `'auto'` if you want FreeMat to set the tick labels. This will be based on the vector `ytick`.
- `zticklabelmode` - `{'auto','manual'}` - Set to `'auto'` if you want FreeMat to set the tick labels. This will be based on the vector `ztick`.