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.

Control de interactividad de gráficas

Puede explorar y editar de forma interactiva datos representados gráficamente para mejorar la visualización de los datos o revelar información adicional acerca de los mismos. Las interacciones disponibles dependen del contenido de los ejes, pero incluyen normalmente acercar y alejar el zoom, rotar los ejes, consejos sobre datos, resaltado de datos y restauración de la vista original.

Algunos tipos de interacciones están disponibles en la barra de herramientas de los ejes. La barra de herramientas aparece en la esquina superior derecha de los ejes cuando mueve el cursor por encima del área de la gráfica.

Sample axes toolbar

Otro tipo de interacciones se encuentran integradas en los ejes y están disponibles mediante gestos, como arrastrar para desplazar o desplazarse para alejar o acercar. Estas interacciones se controlan de forma independiente desde la barra de herramientas de los ejes.

Al crear una gráfica, podrá controlar el conjunto de interacciones disponibles de varias formas:

En la versión R2018a y en versiones anteriores, muchas de las opciones de interacción aparecen en la barra de herramientas de la figura, en lugar de en la barra de herramientas de los ejes. Además, ninguna de las interacciones están integradas en los ejes en las versiones anteriores.

Mostrar u ocultar la barra de herramientas de los ejes

Para mostrar u ocultar la barra de herramientas de los ejes, establezca la propiedad Visible del objeto AxesToolbar en 'on' u 'off', respectivamente. Por ejemplo, ocultar la barra de herramientas de los ejes actuales:

ax = gca;
ax.Toolbar.Visible = 'off';

Personalizar la barra de herramientas de los ejes

Puede personalizar las opciones disponibles de la barra de herramientas de los ejes mediante las funciones axtoolbar y axtoolbarbtn.

Por ejemplo, añada un botón de estado personalizado para la barra de herramientas de los ejes que active y desactive las líneas de la cuadrícula de los ejes. Cree primero un archivo del programa llamado mycustomstatebutton.m. En el archivo del programa:

  • Represente datos aleatorios.

  • Cree una barra de herramientas para los ejes con excepciones para aumentar, disminuir y restablecer la vista utilizando la función axtoolbar.

  • Añada un botón de estado vacío a la barra de tareas mediante la función axtoolbarbtn. Devuelva el objeto ToolbarStateButton.

  • Especifique el icono, la información sobre herramientas y la función callback para el botón de estado estableciendo las propiedades de Icon, Tooltip y ValueChangedFcn. Este ejemplo utiliza el icono grid que debe guardar primero como un archivo de imagen llamado mygridicon.png en su ruta.

Cuando ejecute el archivo del programa, haga clic en el icono para activar y desactivar las líneas de la cuadrícula.

function mycustomstatebutton

plot(rand(5))
ax = gca;
tb = axtoolbar(ax,{'zoomin','zoomout','restoreview'});

btn = axtoolbarbtn(tb,'state');
btn.Icon = 'mygridicon.png';
btn.Tooltip = 'Grid Lines';
btn.ValueChangedFcn = @customcallback;

    function customcallback(src,event)
        switch src.Value
            case 'off'
                event.Axes.XGrid = 'off';
                event.Axes.YGrid = 'off';
                event.Axes.ZGrid = 'off';
            case 'on'
                event.Axes.XGrid = 'on';
                event.Axes.YGrid = 'on';
                event.Axes.ZGrid = 'on';
        end
    end

end

Line plot with grid lines

Activar o desactivar interacciones integradas

Para controlar si un conjunto de interacciones integradas se encuentra activado en una gráfica, emplee las funciones disableDefaultInteractivity y enableDefaultInteractivity. En algunas ocasiones, MATLAB® desactiva automáticamente las interacciones integradas. Por ejemplo, es posible que estén desactivados para gráficas con características especiales o cuando implementa determinados callbacks como WindowScrollWheelFcn.

Interacciones integradas personalizadas

La mayoría de tipos de ejes incluye un conjunto predeterminado de interacciones integradas que se corresponden con gestos específicos. Las interacciones disponibles dependen del contenido de los ejes. La mayoría de los ejes incluyen interacciones para desplazar para aumentar o disminuir el zoom, colocar el cursor encima o hacer clic para mostrar sugerencias de datos y arrastrar para desplazar (en una vista 2D) o rotar (en una vista 3D). Puede sustituir el conjunto especificado con un nuevo conjunto de interacciones pero no puede acceder o modificar ninguna de las interacciones del conjunto predeterminado.

Para sustituir las interacciones especificadas, establezca la propiedad Interactions de los ejes a un arreglo de objetos de interacción. Seleccione una combinación de objetos de interacción compatible de la siguiente tabla. Para eliminar todas las interacciones de los ejes, establezca la propiedad en un arreglo vacío ([]).

Objeto de interacciónDescripciónInteracciones compatibles
panInteractionDesplazarse en una gráfica arrastrando.Todas salvo regionZoomInteraction y rotateInteraction
rulerPanInteractionDesplazar un eje arrastrándolo.Todas
zoomInteractionAcercar o alejar desplazando o pellizcando.Todas
regionZoomInteractionAcercar o alejar una región rectangular arrastrando.
(Solo para gráficas 2D cartesianas)
Todas salvo panInteraction y rotateInteraction
rotateInteractionRotar una gráfica arrastrándola.Todas salvo panInteraction y regionZoomInteraction
dataTipInteractionProyectar sugerencias de datos al colocar el cursor encima, haciendo clic o pulsando.Todas

Por ejemplo, crear una gráfica que contenga 1.000 puntos dispersos.

x = 1:500;
y = randn(1,500);
y2 = 5*randn(1,500) + 10;
plot(x,y,'.',x,y2,'.')

Scatter plot displaying two sets of data using two colors

De manera predeterminada, esta gráfica consta de un conjunto de interacciones que incluye arrastrar para desplazarse en la zona de la gráfica. Sin embargo, debido a que la gráfica tiene una recopilación de puntos densa, un conjunto más correcto de interacciones incluiría una que le permita acercar en regiones específicas de la gráfica. El objeto regionZoomInteraction permite esta función. Sustituya el conjunto de interacciones establecido para los ejes actuales con un arreglo que incluya el objeto regionZoomInteraction.

ax = gca;
ax.Interactions = [zoomInteraction regionZoomInteraction rulerPanInteraction];

Ahora, al arrastrar en la zona de la gráfica se define una región de interés rectangular para acercar.

The same scatter plot with a rectangle surrounding some points

Personalizar el comportamiento de interacción para apps

Puede personalizar el comportamiento de determinados aspectos de las interacciones de los ejes para ejes en App Designer y para ejes en figuras creadas con la función uifigure. Personalice interacciones de los ejes cambiando los valores de las propiedades del objeto InteractionOptions asociado.

Por ejemplo, personalice las interacciones de los ejes en una figura creada con la función uifigure. Modifique las interacciones admitidas para los ejes. Especifique la propiedad PanSupported como "off" para que los ejes no admitan la interacción de desplazamiento.

f = uifigure;
ax = uiaxes(f);
plot(ax,magic(4));
ax.InteractionOptions.PanSupported = "off";

La barra de herramientas de los ejes ya no incluye el botón Pan , y hacer clic y arrastrar la gráfica no desplaza la vista de los ejes.

Plot with axes toolbar showing all the default buttons excluding the Pan button

Después, restrinja la interacción de zoom solo a la dimensión x.

ax.InteractionOptions.LimitsDimensions = "x";

Ahora, todas las interacciones de zoom asociadas a la propiedad LimitsDimensions están restringidas a la dimensión x. Por ejemplo, active el modo de zoom para los ejes.

zoom(ax,"on")
Después, arrastre, desplace o haga clic dentro de la gráfica para acercar y alejar. La propiedad LimitsDimensions de InteractionOptions restringe el zoom a la dimensión x.

Selection range along x-axis for zooming

Después de acercar o alejar los ejes, restaure la vista de los ejes. Antes de restaurar la vista, consulte los límites predeterminados del eje x para restaurar la vista.

restoreX = ax.InteractionOptions.RestoredXLimits
restoreX =`

     1     4

Personalice los límites de restauración del eje x.

ax.InteractionOptions.RestoredXLimits = [2 3];

Después, haga clic en el botón Restore View en la barra de herramientas de los ejes. Los límites del eje x son [2 3].

Plot with x-axis limits [2 3]

Consulte también

Funciones

Propiedades

Temas relacionados