Lo que he aprendido: zoom en todos los subplots en Matlab

Siguiendo con mis miniprogramas de adecentar gráficos, hoy me he currado una función para hacer zoom en todos los subplots de un gráfico en Matlab. ¿Qué sentido tiene esto? me diréis. Pues muy fácil hermanos míos, imaginad que habéis hecho unos ensayos y tenéis las señales que habéis medido en un gráfico con subgráficos. Imaginad ahora que queréis saber qué pasa en todas las señales en un momento determinado. Tendríais que hacer un montón de zooms o volver a crear los gráficos solo en el trocito. ¡Ahí vengo yo en vuestra ayuda! 

Pues nada, os pongo ya la función que poca cosa hay que comentar. Básicamente se resume en:

  • Pide el identificador del gráfico, el layout de los subplots, el eje en el que se hace el zoom y los límites

  • Lee el número de gráficos que hay en el plot (por si acaso no todos los huequecillos para subplots contienen plots) y coge sus handles

  • Conecta los ejes de todos los gráficos entre sí para que al tocar uno cambien todos

  • Ajusta los límites. Aquí usa el famoso nargin para que sea suficiente con darle un límite si solo queremos cambiar un eje y si le damos dos entiende que hay que cambiar ambos ejes 

Tengo que averiguar si es posible leer el layout de subplots desde el propio gráfico, pero de momento esta es la primera versión que se me ocurre: 

Eso sí, como apliquéis esta función a un gráfico que tengáis guardado y hayáis abierto probablemente se desgracien todos los gráficos, pero eso no es culpa mía, decidle a Matlab 😉

ACTUALIZACIÓN

Lo he puesto en GitHub

Anuncios

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s