Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Controlar el diseño de los ejes

Propiedades y funciones relacionadas con la posición

Existen varias propiedades y funciones para obtener y establecer el tamaño y la ubicación de los ejes. Esta tabla proporciona un resumen.

Función o propiedadDescripción

Propiedad OuterPosition

Utilice esta propiedad para consultar o cambiar el límite exterior de los ejes, incluido el título, las etiquetas y un margen. Para cambiar el límite externo, especifique esta propiedad como un vector con formato [left bottom width height]. Los valores left y bottom indican la distancia desde la esquina inferior izquierda de la figura hasta la esquina inferior izquierda del límite externo. Los valores width y height indican las dimensiones del límite externo.

Propiedad Position

Utilice esta propiedad para consultar o cambiar el área de representación, que normalmente está acotada por el cuadro de la gráfica. Esta área excluye el título, las etiquetas y un margen alrededor del título y las etiquetas. Para cambiar el tamaño del área de representación, especifique esta propiedad como un vector con formato [left bottom width height].

Función tightPosition

Desde la versión R2022b

Utilice esta función para consultar el área de representación, que normalmente está acotada por el cuadro de la gráfica. La función normalmente devuelve información más precisa sobre el tamaño y la ubicación que la propiedad Position para ejes que tienen relaciones de aspecto restringidas (como ejes cuadrados, ejes polares o ejes que contienen imágenes).

Propiedad TightInset

Utilice esta propiedad para consultar los márgenes alrededor del cuadro de la gráfica para títulos, etiquetas de marcas y etiquetas de ejes. Cuando se añaden etiquetas de ejes y un título, MATLAB® actualiza esta propiedad para ajustar el texto. El tamaño del límite definido por las propiedades Position y TightInset incluye todas las etiquetas de texto.

Propiedad PositionConstraint

Desde la versión R2020a

Utilice esta propiedad para consultar o controlar si se conserva el área de representación (dentro de los ejes) o el límite exterior de los ejes al añadir títulos o etiquetas. Para cambiar qué aspecto de los ejes se va a conservar, especifique esta propiedad como "innerposition" o "outerposition".

Propiedad Units

Utilice esta propiedad para consultar o cambiar las unidades de los valores de posición de los ejes. El valor se debe definir en "normalized" (el valor predeterminado) para habilitar el cambio de tamaño automático de los ejes.

Función axis

Utilice esta función para realizar ajustes en los límites de los ejes o en la relación de aspecto sin tener que realizar cálculos ni establecer propiedades específicas. Por ejemplo:

  • axis image: cambia el tamaño del cuadro de la gráfica para que quepa una imagen.

  • axis padded: añade un margen de relleno entre la visualización (por ejemplo, una línea representada) y el cuadro de la gráfica.

Posición y límites de los márgenes

Esta figura muestra una vista en 2D de las áreas de los ejes definidas mediante los valores OuterPosition (rojo), los valores Position (azul) y la Position ampliada mediante los valores TightInset (magenta).

2-D Cartesian axes with a red rectangle drawn around the area defined by the OuterPosition values, a blue rectangle drawn around the region defined by the Position values, and a magenta rectangle drawn around the area defined by the Position and TightInset values combined

Esta figura muestra una vista en 3D de las áreas de los ejes definidas mediante los valores OuterPosition (rojo), los valores Position (azul) y la Position ampliada mediante los valores TightInset (magenta).

3-D Cartesian axes with a red rectangle drawn around the area defined by the OuterPosition values, a blue rectangle drawn around the region defined by the Position values, and a magenta rectangle drawn around the area defined by the Position and TightInset values combined

Posición para relaciones de aspecto cuadradas o restringidas

Desde la versión R2022b

Si los ejes tienen una relación de aspecto restringida; por ejemplo, si está representando una imagen, la propiedad Position y la función tightPosition devuelven resultados diferentes. Utilice una u otra en función del tipo de presentación que desee crear.

Por ejemplo, muestre una imagen. Utilice la función axis para conservar la relación de aspecto de la imagen.

figure
C = imread("ngc6543a.jpg");
ax = axes;
image(C)
axis image

Obtenga el vector de posición llamando a la función tightPosition. Utilice el vector para dibujar un rectángulo rojo alrededor de la imagen que se muestra actualmente en los ejes.

tpos = tightPosition(ax);
annotation("rectangle",tpos,Color="red",LineWidth=2)

Axes showing an image with a red rectangle drawn around the area defined by the value returned by the tightPosition function

Obtenga otro vector de posición consultando la propiedad Position de los ejes. Utilice el vector para dibujar un rectángulo azul que defina el área de representación de una imagen de tamaño similar, pero con la relación de aspecto predeterminada. Los valores de este vector pueden ser útiles para consultar el área total de la imagen cuando se muestra una sucesión de varias imágenes que tienen diferentes relaciones de aspecto.

pos = ax.Position;
annotation("rectangle",pos,Color="blue",LineWidth=2)

Axes showing an image with a red rectangle drawn around the area defined by the value returned by the tightPosition function. A blue rectangle is drawn around the area defined by the Position property. The red rectangle coincides with the perimeter of the plot box. The area returned by the Position property has more space on the left and right sides of the image.

Control del comportamiento de cambio de tamaño automático

Algunas situaciones pueden desencadenar que el objeto Axes cambie automáticamente de tamaño. Por ejemplo, cambiar el tamaño de la figura de forma interactiva o añadir un título o etiquetas de eje activa el cambio de tamaño automático. A veces, el nuevo tamaño de los ejes no puede satisfacer los valores Position y OuterPosition, por lo que la propiedad PositionConstraint indica qué valores se han de conservar.

Especifique la propiedad PositionConstraint como uno de estos valores:

  • "outerposition": conserva el valor OuterPosition. Utilice esta opción cuando no desee que los ejes o cualquier texto de alrededor se extiendan más allá de un determinado límite externo. MATLAB ajusta el tamaño del área interna de los ejes (donde aparecen las gráficas) para intentar ajustar el contenido dentro del límite externo.

  • "innerposition": conserva el valor InnerPosition. Utilice esta opción cuando desee que el área interna de los ejes conserve un tamaño determinado dentro de la figura. Esta opción a veces provoca que el texto se extienda fuera de la figura.

Antes de R2020a: utilice ActivePositionProperty y los valores "outerposition" o "position".

Generalmente, es preferible dejar el valor de la propiedad PositionConstraint definido en "outerposition". Sin embargo, las etiquetas o los títulos de ejes demasiado largos pueden reducir el área interna de los ejes a un tamaño de difícil lectura. En tal caso, puede ser preferible mantener los ejes internos en un tamaño concreto, aunque el texto de alrededor se extienda fuera de la figura.

Por ejemplo, cree una figura con dos ejes y especifique el mismo ancho y altura en cada posición de los ejes. Defina el valor de la propiedad PositionConstraint en "outerposition" en los ejes superiores y en "innerposition" en los inferiores. Tenga en cuenta que, en los ejes superiores, el área interna se reduce para ajustar el texto, pero el texto no se extiende fuera de la figura. En los ejes inferiores, se conserva el tamaño del área interna, pero parte del texto queda cortado.

figure; 
ax1 = axes("Position",[0.13 0.58 0.77 0.34]);
ax1.PositionConstraint = "outerposition";
plot(ax1,1:10)
title(ax1,"Preserve OuterPosition")
yticklabels(ax1,["My incredibly descriptive, excessively wordy, and overly long label",...
    "label 2","label 3"])

ax2 = axes("Position",[0.13 0.11 0.77 0.34]);
ax2.PositionConstraint = "innerposition";
plot(ax2,1:10)
title(ax2,"Preserve Position")
yticklabels(ax2,["My incredibly descriptive, excessively wordy, and overly long label",...
    "label 2","label 3"])

Two axes that are vertically stacked. The upper axes has a long y-axis label, and the plot box has shrunk to accommodate the long string of text. In the lower axes, the y-axis label is clipped to preserve the size of the plot box.

Comportamiento de "expandir a relleno"

De forma predeterminada, MATLAB expande los ejes para rellenar el espacio disponible. Este comportamiento de "expandir a relleno" puede provocar cierta distorsión. Puede que los ejes no coincidan exactamente con la relación del aspecto de los datos, la relación del aspecto del cuadro de la gráfica y los valores del ángulo de visión de la cámara almacenados en las propiedades DataAspectRatio, PlotBoxAspectRatio y CameraViewAngle. El comportamiento de "expandir a relleno" se activa cuando las propiedades DataAspectRatioMode, PlotBoxAspectRatioMode y CameraViewAngleMode del objeto Axes se establecen en "auto".

Si especifica la relación de aspecto de los datos, la relación de aspecto del cuadro de la gráfica y los valores del ángulo de visión de la cámara, se desactiva el comportamiento de "expandir a relleno". Cuando se desactiva el comportamiento de "expandir a relleno", MATLAB hace los ejes lo más grandes posibles dentro del espacio disponible y se adhiere estrictamente a los valores de propiedad, de forma que no hay distorsión.

Por ejemplo, esta figura muestra la misma gráfica con y sin el comportamiento de "expandir a relleno" activado. En ambas versiones, la relación del aspecto de los datos, la relación del aspecto del cuadro de la gráfica y los valores del ángulo de visión de la cámara son los mismos. Sin embargo, en la gráfica izquierda, el ajuste aporta un poco de distorsión.

"Expandir a relleno" activado (un poco de distorsión)"Expandir a relleno" desactivado (sin distorsión)

Plot of a circle stretched to fill the plot box, which is rectangular. Tthe circle displays as an oval.

Plot of a circle without any distortion

Consulte también

Funciones

Propiedades

Temas relacionados