Agregar una barra de herramientas en las gráficas de Matlab

Publicado el 28 septiembre 2022 por Daniel Rodríguez @analyticslane

Las gráficas de Matlab cuentan desde la versión 2018b con una barra de herramientas que puede ser de gran utilidad tanto para el análisis de datos como para la exportación de figuras más precisas. Herramienta a la que se puede acceder mediante la función axtoolbar(). Al incluir esta barra de herramientas en las gráficas de Matlab va a ser posible desde esta exportar la gráfica, seleccionar datos, rotar la figura y hacer zoom sobre la misma.

Creación de una figura con una barra de herramientas

A modo de ejemplo, para tener unos datos con los que sea posible jugar, vamos a crear una gráfica con la cotización del Bitcoin. Para lo que usaremos el servicio web de Bitmex que se explicó en una ocasión anterior.

En Matlab, la función que debemos usar para leer los datos de una URL es webread(). A la que se le debe pasar una cadena de texto con la URL. En este caso, cómo el servicio devuelve un objeto archivo JSON, lo que se obtiene es un vector de la estructura equivalente al objeto. Dado que solamente interesa un valor para la gráfica, se usará el de cierre, se puede usar programación funcional para convertir extraer el dato. Lo que en Matlab se puede hacer con la función arrayfun().

Una vez obtenidos los datos se puedes dibujar con plot() y agregar a esta la barra de herramientas mediante axtoolbar(). Los pasos se pueden ver en el siguiente código.

data = webread('https://www.bitmex.com/api/v1/trade/bucketed?symbol=XBTEUR&binSize=1d');
close = arrayfun(@(x) x.close, data);

ax = plot(close);
tb = axtoolbar(ax.Parent);

Lo que al ejecutarlo produce una figura como la que se muestra a continuación.

Figura de Matlab en la que se agregado una barra de herramientas con con axtoolbar

La barra de herramientas en las gráficas de Matlab

Nótese que en esta figura hay dos barras de herramientas. Una situada en la figura y otra en la parte superior derecha de la figura, siendo esta última la que se ha creado con mediante axtoolbar(). Esta barra tiene por defecto siete herramientas:

  • Exportar la figura, donde se puede exportar la figura a un archivo o copiar en el portapapeles como imagen o gráfica vectorial
  • Seleccionar unos datos de la figura. Una vez seleccionados se puede usar el botón derecho del ratón para eliminar la selección, reemplazarla por otro valor o eliminar los valores no seleccionados entre otras opciones.
  • Agregar etiquetas a los datos, con lo que se puede seleccionar un dato dentro de la gráfica para mostrar una etiqueta con los valores precisos que tiene ese punto en los ejes.
  • Mover la figura, para desplazar las curvas y permitir centrar el dato en un punto de interés.
  • Zoom para acercarse.
  • Zoom para alejarse.
  • Restablecer la posición de los ejes.

Seleccionar las herramientas de la barra

En el caso que solamente sean necesarias algunas de las herramientas, se puede indicar estas a la función. Para lo que se debe pasar como parámetro una celda con el nombre de las herramientas. Por ejemplo, para seleccionar solamente las de zoom se puede usar el siguiente código.

axtoolbar(ax,{'zoomin','zoomout','restoreview'});

Lo que nos creará una figura como la que se muestra a continuación.

Figura de Matlab en la que se agrega una barra de herramientas solamente con unos elementos seleccionados

Conclusiones

En esta ocasión se ha visto las posibilidades que ofrece la inclusión de una barra de herramientas en las gráficas de Matlab. Una función con la que se pueden seleccionar los datos a mostrar en una gráfica.