En este módulo, exploraremos técnicas avanzadas de gráficos en MATLAB que te permitirán crear visualizaciones más complejas y personalizadas. Estas técnicas son útiles para presentar datos de manera más efectiva y profesional.
Contenido
Gráficos Subplot
Los gráficos subplot permiten mostrar múltiples gráficos en una sola figura, organizados en una cuadrícula.
Ejemplo Práctico
% Crear una figura con 2 filas y 2 columnas de subplots figure; % Primer subplot subplot(2, 2, 1); x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y); title('Seno'); % Segundo subplot subplot(2, 2, 2); y = cos(x); plot(x, y); title('Coseno'); % Tercer subplot subplot(2, 2, 3); y = tan(x); plot(x, y); title('Tangente'); % Cuarto subplot subplot(2, 2, 4); y = exp(x); plot(x, y); title('Exponencial');
Explicación
figure
: Crea una nueva figura.subplot(m, n, p)
: Divide la figura en una cuadrícula dem
filas yn
columnas, y selecciona elp
-ésimo subplot para el gráfico actual.plot
: Dibuja el gráfico en el subplot seleccionado.title
: Añade un título al subplot.
Gráficos con Múltiples Ejes
Puedes crear gráficos con múltiples ejes en una sola figura para comparar diferentes conjuntos de datos.
Ejemplo Práctico
% Crear una figura figure; % Primer eje yyaxis left; x = linspace(0, 10, 100); y1 = sin(x); plot(x, y1); ylabel('Seno'); % Segundo eje yyaxis right; y2 = cos(x); plot(x, y2); ylabel('Coseno'); % Título y etiquetas title('Gráfico con Múltiples Ejes'); xlabel('X');
Explicación
yyaxis left
: Activa el eje izquierdo.yyaxis right
: Activa el eje derecho.plot
: Dibuja el gráfico en el eje activo.ylabel
: Añade una etiqueta al eje activo.title
yxlabel
: Añaden un título y una etiqueta al eje X de la figura.
Gráficos Interactivos
MATLAB permite crear gráficos interactivos que responden a eventos del usuario, como clics y movimientos del ratón.
Ejemplo Práctico
% Crear una figura figure; x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y); title('Gráfico Interactivo'); xlabel('X'); ylabel('Seno'); % Añadir interactividad dcm_obj = datacursormode; datacursormode on; set(dcm_obj, 'UpdateFcn', @myupdatefcn); % Función de actualización del cursor de datos function txt = myupdatefcn(~, event_obj) pos = get(event_obj, 'Position'); txt = {['X: ', num2str(pos(1))], ['Y: ', num2str(pos(2))]}; end
Explicación
datacursormode
: Activa el modo de cursor de datos.set(dcm_obj, 'UpdateFcn', @myupdatefcn)
: Define una función de actualización personalizada para el cursor de datos.myupdatefcn
: Función que se ejecuta cuando el cursor de datos se mueve, mostrando las coordenadas del punto seleccionado.
Gráficos Animados
Los gráficos animados son útiles para visualizar datos que cambian con el tiempo.
Ejemplo Práctico
% Crear una figura figure; x = linspace(0, 2*pi, 100); y = sin(x); h = plot(x, y); title('Gráfico Animado'); xlabel('X'); ylabel('Seno'); % Animar el gráfico for k = 1:100 y = sin(x + k/10); set(h, 'YData', y); pause(0.1); end
Explicación
plot
: Dibuja el gráfico inicial.set(h, 'YData', y)
: Actualiza los datos del gráfico.pause(0.1)
: Pausa la ejecución durante 0.1 segundos para crear la animación.
Exportación de Gráficos
MATLAB permite exportar gráficos a varios formatos, como PNG, JPEG, PDF, y más.
Ejemplo Práctico
% Crear un gráfico figure; x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y); title('Gráfico para Exportar'); xlabel('X'); ylabel('Seno'); % Exportar el gráfico saveas(gcf, 'grafico.png');
Explicación
saveas(gcf, 'filename.ext')
: Guarda la figura actual (gcf
) en el archivo especificado con la extensión deseada.
Ejercicio Práctico
Ejercicio
Crea una figura con 3 subplots en una fila. El primer subplot debe mostrar un gráfico de y = sin(x)
, el segundo y = cos(x)
, y el tercero y = tan(x)
. Añade títulos y etiquetas a cada subplot.
Solución
% Crear una figura con 1 fila y 3 columnas de subplots figure; % Primer subplot subplot(1, 3, 1); x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y); title('Seno'); xlabel('X'); ylabel('Y'); % Segundo subplot subplot(1, 3, 2); y = cos(x); plot(x, y); title('Coseno'); xlabel('X'); ylabel('Y'); % Tercer subplot subplot(1, 3, 3); y = tan(x); plot(x, y); title('Tangente'); xlabel('X'); ylabel('Y');
Retroalimentación
- Asegúrate de ajustar los límites del eje Y en el tercer subplot para evitar valores infinitos de la tangente.
- Usa
ylim([-10, 10])
en el tercer subplot para limitar los valores de Y.
Conclusión
En esta sección, hemos explorado técnicas avanzadas de gráficos en MATLAB, incluyendo subplots, gráficos con múltiples ejes, gráficos interactivos, gráficos animados y exportación de gráficos. Estas herramientas te permitirán crear visualizaciones más complejas y personalizadas, mejorando la presentación de tus datos. En el próximo módulo, nos enfocaremos en el análisis de datos y estadísticas en MATLAB.
Curso de Programación en MATLAB
Módulo 1: Introducción a MATLAB
- Comenzando con MATLAB
- Interfaz y Entorno de MATLAB
- Comandos Básicos y Sintaxis
- Variables y Tipos de Datos
- Operaciones y Funciones Básicas
Módulo 2: Vectores y Matrices
- Creación de Vectores y Matrices
- Operaciones con Matrices
- Indexación y Segmentación
- Funciones de Matrices
- Álgebra Lineal en MATLAB
Módulo 3: Estructuras de Programación
- Flujo de Control: if, else, switch
- Bucles: for, while
- Funciones: Definición y Alcance
- Scripts vs. Funciones
- Depuración y Manejo de Errores
Módulo 4: Visualización de Datos
- Conceptos Básicos de Gráficos
- Gráficos 2D
- Gráficos 3D
- Personalización de Gráficos
- Técnicas Avanzadas de Gráficos
Módulo 5: Análisis de Datos y Estadísticas
- Importación y Exportación de Datos
- Estadísticas Descriptivas
- Preprocesamiento de Datos
- Análisis de Regresión
- Pruebas Estadísticas
Módulo 6: Temas Avanzados
- Entrada/Salida de Archivos
- Manejo de Grandes Conjuntos de Datos
- Técnicas de Optimización
- Conceptos Básicos de Simulink
- Computación Paralela