Thursday, July 30, 2009

query the axes data aspect ratio

daspect

Set or query the axes data aspect ratio

Syntax

  • daspect
    daspect([aspect_ratio])
    daspect('mode')
    daspect('auto')
    daspect('manual')
    daspect(axes_handle,...)

Description

The data aspect ratio determines the relative scaling of the data units along the x-, y-, and z-axes.

daspect with no arguments returns the data aspect ratio of the current axes.

daspect([aspect_ratio]) sets the data aspect ratio in the current axes to the specified value. Specify the aspect ratio as three relative values representing the ratio of the x-, y-, and z-axis scaling (e.g., [1 1 3] means one unit in x is equal in length to one unit in y and three unit in z).

daspect('mode') returns the current value of the data aspect ratio mode, which can be either auto (the default) or manual. See Remarks.

daspect('auto') sets the data aspect ratio mode to auto.

daspect('manual') sets the data aspect ratio mode to manual.

daspect(axes_handle,...) performs the set or query on the axes identified by the first argument, axes_handle. When you do not specify an axes handle, daspect operates on the current axes.

Remarks

daspect sets or queries values of the axes object DataAspectRatio and DataAspectRatioMode properties.

When the data aspect ratio mode is auto, MATLAB adjusts the data aspect ratio so that each axis spans the space available in the figure window. If you are displaying a representation of a real-life object, you should set the data aspect ratio to [1 1 1] to produce the correct proportions.

Setting a value for data aspect ratio or setting the data aspect ratio mode to manual disables the MATLAB stretch-to-fill feature (stretching of the axes to fit the window). This means setting the data aspect ratio to a value, including its current value,

  • daspect(daspect)

can cause a change in the way the graphs look. See the Remarks section of the axes description for more information.

Examples

The following surface plot of the function is useful to illustrate the data aspect ratio. First plot the function over the range -2 x 2, -2 y 2,

  • [x,y] = meshgrid([-2:.2:2]);
    z = x.*exp(-x.^2 - y.^2);
    surf(x,y,z)



Querying the data aspect ratio shows how MATLAB has drawn the surface.

  • daspect
    ans =
    4 4 1

Setting the data aspect ratio to [1 1 1] produces a surface plot with equal scaling along each axis.

  • daspect([1 1 1])




No comments:

Post a Comment