Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página 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, sugerencias de 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.

Otros tipos 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 a las de 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, oculte 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.

Nota

Las barras de herramientas personalizadas no aparecen en figuras en Live Editor. Para ver la barra de herramientas personalizada, abra la figura en una ventana de figura independiente.

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 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

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 desactivadas para gráficas con funcionalidades especiales o cuando implementa determinados callbacks como WindowScrollWheelFcn.

Personalizar interacciones integradas

La mayoría de tipos de ejes incluye, de forma predeterminada, un conjunto 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 cartesianos incluye 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 predeterminado con un nuevo conjunto de interacciones pero no puede acceder o modificar ninguna de las interacciones del conjunto predeterminado.

Nota

No es posible personalizar o sustituir las interacciones integradas en Live Editor.

Para sustituir las interacciones especificadas, establezca la propiedad Interactions de los ejes en 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)
Todas salvo panInteraction y rotateInteraction
rotateInteractionRotar una gráfica arrastrándola.Todas salvo panInteraction y regionZoomInteraction
dataTipInteractionMostrar sugerencias de datos colocando el cursor encima, haciendo clic o pulsando.Todas

Por ejemplo, cree 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,'.')

De manera predeterminada, esta gráfica dispone 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 un grupo denso de puntos, un conjunto más útil 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.

Consulte también

Funciones

Propiedades

Temas relacionados