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.
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 objetoToolbarStateButton
.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
yValueChangedFcn
. Este ejemplo utiliza el icono que debe guardar primero como un archivo de imagen llamadomygridicon.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 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ón | Descripción | Interacciones compatibles |
---|---|---|
panInteraction | Desplazarse en una gráfica arrastrando. | Todas salvo regionZoomInteraction y rotateInteraction |
rulerPanInteraction | Desplazar un eje arrastrándolo. | Todas |
zoomInteraction | Acercar o alejar desplazando o pellizcando. | Todas |
regionZoomInteraction | Acercar o alejar una región rectangular arrastrando. (Solo para gráficas 2D cartesianas) | Todas salvo panInteraction y rotateInteraction |
rotateInteraction | Rotar una gráfica arrastrándola. | Todas salvo panInteraction y regionZoomInteraction |
dataTipInteraction | Proyectar 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,'.')
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.
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.
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")
LimitsDimensions
de InteractionOptions
restringe el zoom a la dimensión x.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]
.
Consulte también
Funciones
Propiedades
- AxesToolbar Properties | ToolbarPushButton Properties | ToolbarStateButton Properties | Axes Properties | InteractionOptions Properties