Cómo crear gráficos con ejes secundarios en MATLAB

Publicado el 02 octubre 2024 por Daniel Rodríguez @analyticslane

El uso de ejes secundarios en los gráficos permite comparar la tendencia de datos con diferentes unidades o rangos de valores. Permitiendo visualizar más fácilmente la relación entre estos. En el caso de MATLAB, la creación de estos gráficos se puede conseguir mediante el uso de la función yyaxis para seleccionar el eje sobre el que se representan los datos. Facilitando así la superposición de dos conjuntos de datos. En esta entrada, se explicará cómo crear gráficos con ejes secundarios en MATLAB y personalizar opciones como los colores y las etiquetas.

Creación de un gráfico básico

Antes de poder crear un gráfico con un eje secundario en MATLAB es necesario crear un gráfico básico. Para superponer los datos en el segundo eje posteriormente. Supongamos que se dispone de dos conjuntos de datos que representan las temperaturas y la velocidad del viento registradas en un mismo periodo. Queriendo mostrar ambas series en un mismo gráfico. Pero, dado que las unidades de ambas series son diferentes, grados para la temperatura y km/h para la velocidad del viento, es necesario usar una secundario para la segunda serie.

El código básico para crear una gráfica básica en la que se muestra solo la temperatura es el que se muestra a continuación.

% Datos de ejemplo
tiempo = 1:10; % Tiempo en días
temperatura = [22, 23, 25, 24, 26, 28, 29, 30, 32, 33]; % Temperatura en grados Celsius
velocidad_viento = [10, 12, 14, 16, 13, 15, 17, 18, 20, 19]; % Velocidad del viento en km/h

% Crear la figura
figure;

% Graficar el primer conjunto de datos
plot(tiempo, temperatura, '-o');
xlabel('Tiempo (días)');
ylabel('Temperatura (°C)');
title('Temperatura y Velocidad del Viento');
grid on;

En este código, se crea un gráfico con el tiempo en el eje x y la temperatura en el eje y, empleando la función plot() para dibujar la línea de la temperatura. A continuación se agregan etiquetas a los ejes, mediante las funciones xlabel() e ylabel(), y un título para mejorar la claridad del gráfico, para lo que se ha recurrido a la función title().

Agregar ejes secundarios en MATLAB

Ahora que ya se ha creado la gráfica básica con la temperatura, se puede usar la función yyaxis para indicar que las nuevas series se muestran en el eje secundario. Para lo que se debe llamar a la función seguido del eje ( left para el primario o right para el secundario). En el siguiente ejemplo se puede ver cómo se crea una gráfica con las dos series.

% Activar el eje y izquierdo para la temperatura
yyaxis left
plot(tiempo, temperatura, '-o');
ylabel('Temperatura (°C)');

% Activar el eje y derecho para la velocidad del viento
yyaxis right
plot(tiempo, velocidad_viento, '-s');
ylabel('Velocidad del Viento (km/h)');

En este ejemplo, antes de llamar a la función plot(), se usa yyaxis left para indicar que se use el eje izquierdo (primario) o yyaxis right para el derecho (secundario). MATLAB sabe que debe usar diferentes ejes y escalas para cada conjunto de datos. Como se puede ver en el resultado, yyaxis left se utiliza para la temperatura, y yyaxis right para la velocidad del viento.

Personalizar los colores y las etiquetas

Ahora ya se dispone de un gráfico con dos ejes, pero puede que las opciones por defecto no sean las que se desean. Para lo que se pueden cambiar múltiples opciones. Por ejemplo, en el siguiente ejemplo se personalizan los colores de las líneas y las etiquetas del eje para mejorar la legibilidad.

% Personalizar el color de la temperatura
yyaxis left
plot(tiempo, temperatura, '-o', 'Color', 'b');
ylabel('Temperatura (°C)');
ax = gca;
ax.YColor = 'b';

% Personalizar el color de la velocidad del viento
yyaxis right
plot(tiempo, velocidad_viento, '-s', 'Color', 'r');
ylabel('Velocidad del Viento (km/h)');
ax.YColor = 'r';

Respecto al ejemplo anterior, se ha especificado que se usa el color azul para la temperatura y rojo para la velocidad del viento. Además, también se han ajustado los colores de las etiquetas de los ejes para que coincidan con las líneas del gráfico, lo que facilita la asociación visual.

Ajustes finales y mejorando la presentación

Finalmente, se pueden hacer ajustes adicionales como cambiar el estilo de línea y añadir una leyenda. Asegurando de este modo que los datos sean representados con claridad.

% Establecer el estilo de línea y marcadores
yyaxis left
plot(tiempo, temperatura, '-o', 'LineWidth', 1.5);
ylabel('Temperatura (°C)');
ax = gca;
ax.YColor = 'b';

yyaxis right
plot(tiempo, velocidad_viento, '-s', 'LineWidth', 1.5);
ylabel('Velocidad del Viento (km/h)');
ax.YColor = 'r';

% Añadir leyenda
legend('Temperatura', 'Velocidad del Viento', 'Location', 'northwest');

En este ejemplo final, se ha aumentado el grosor de las líneas para mejorar la visibilidad y agregado una leyenda para clarificar qué línea corresponde a qué conjunto de datos.

Conclusiones

Los gráficos con ejes secundarios en MATLAB son un recurso útil para representar datos con diferentes escalas de forma clara y efectiva. En esta entrada, se ha visto cómo crear un gráfico básico, añadir un eje secundario, personalizar colores y etiquetas, y realizar ajustes finales para una mejor presentación.

Estos gráficos son útiles en muchas ocasiones. Con la práctica se pueden adaptar los pasos de este tutorial para diferentes necesidades de análisis y visualización de datos.

Imagen de Artur Pawlak en Pixabay