En aquest tema, explorarem tècniques avançades per a la creació de gràfics en MATLAB. Aquestes tècniques us permetran crear visualitzacions més complexes i personalitzades, millorant la capacitat de comunicar dades de manera efectiva.
Contingut
Gràfics amb Subplots
Els subplots permeten crear múltiples gràfics en una sola figura, organitzats en una matriu de subgràfics.
Exemple
% Crear una figura amb 4 subplots (2x2) figure; % Primer subplot subplot(2, 2, 1); x = linspace(0, 2*pi, 100); y1 = sin(x); plot(x, y1); title('Sine Wave'); % Segon subplot subplot(2, 2, 2); y2 = cos(x); plot(x, y2); title('Cosine Wave'); % Tercer subplot subplot(2, 2, 3); y3 = tan(x); plot(x, y3); title('Tangent Wave'); % Quart subplot subplot(2, 2, 4); y4 = x.^2; plot(x, y4); title('Quadratic Function');
Explicació
figure
: Crea una nova finestra de figura.subplot(m, n, p)
: Divideix la figura en una matriu de subgràfics de m files i n columnes, i selecciona el p-èssim subgràfic per a dibuixar-hi.
Gràfics amb Eixos Múltiples
Els gràfics amb eixos múltiples permeten superposar diversos gràfics amb diferents escales d'eixos en una sola figura.
Exemple
x = linspace(0, 10, 100); y1 = sin(x); y2 = exp(x/10); figure; yyaxis left; plot(x, y1); ylabel('Sine Wave'); yyaxis right; plot(x, y2); ylabel('Exponential Function'); title('Gràfic amb Eixos Múltiples'); xlabel('X-axis');
Explicació
yyaxis left
: Activa els eixos de l'esquerra.yyaxis right
: Activa els eixos de la dreta.
Gràfics Interactius
MATLAB permet crear gràfics interactius que responen a les accions de l'usuari, com ara clics i moviments del ratolí.
Exemple
x = linspace(0, 2*pi, 100); y = sin(x); figure; plot(x, y); title('Gràfic Interactiu'); xlabel('X-axis'); ylabel('Sine Wave'); % Afegir interactivitat dcm = datacursormode; datacursormode on; set(dcm, 'UpdateFcn', @myupdatefcn); function txt = myupdatefcn(~, event_obj) pos = get(event_obj, 'Position'); txt = {['X: ', num2str(pos(1))], ['Y: ', num2str(pos(2))]}; end
Explicació
datacursormode on
: Activa el mode de cursor de dades.set(dcm, 'UpdateFcn', @myupdatefcn)
: Defineix una funció de retorn de trucada per actualitzar la informació del cursor de dades.
Animacions
Les animacions permeten visualitzar dades que canvien amb el temps.
Exemple
x = linspace(0, 2*pi, 100); y = sin(x); figure; h = plot(x, y); title('Animació de Sine Wave'); xlabel('X-axis'); ylabel('Sine Wave'); for k = 1:100 y = sin(x + 2*pi*k/100); set(h, 'YData', y); pause(0.1); end
Explicació
set(h, 'YData', y)
: Actualitza les dades de l'eix Y del gràfic.pause(0.1)
: Pausa l'execució durant 0.1 segons per crear l'efecte d'animació.
Exportació de Gràfics
MATLAB permet exportar gràfics a diversos formats d'imatge i fitxers.
Exemple
x = linspace(0, 2*pi, 100); y = sin(x); figure; plot(x, y); title('Gràfic per Exportar'); xlabel('X-axis'); ylabel('Sine Wave'); % Exportar a PNG saveas(gcf, 'sine_wave.png'); % Exportar a PDF saveas(gcf, 'sine_wave.pdf');
Explicació
saveas(gcf, 'filename.ext')
: Guarda la figura actual en el format especificat per l'extensió del fitxer.
Exercicis Pràctics
Exercici 1: Crear una Figura amb Subplots
Crea una figura amb 4 subplots (2x2) que mostrin les següents funcions:
y = sin(x)
y = cos(x)
y = tan(x)
y = x^3
Solució
x = linspace(0, 2*pi, 100); figure; subplot(2, 2, 1); plot(x, sin(x)); title('Sine Wave'); subplot(2, 2, 2); plot(x, cos(x)); title('Cosine Wave'); subplot(2, 2, 3); plot(x, tan(x)); title('Tangent Wave'); subplot(2, 2, 4); plot(x, x.^3); title('Cubic Function');
Exercici 2: Crear un Gràfic amb Eixos Múltiples
Crea un gràfic amb eixos múltiples que mostri les següents funcions:
y1 = sin(x)
(eix esquerre)y2 = exp(x/10)
(eix dret)
Solució
x = linspace(0, 10, 100); y1 = sin(x); y2 = exp(x/10); figure; yyaxis left; plot(x, y1); ylabel('Sine Wave'); yyaxis right; plot(x, y2); ylabel('Exponential Function'); title('Gràfic amb Eixos Múltiples'); xlabel('X-axis');
Conclusió
En aquesta secció, hem explorat diverses tècniques avançades per a la creació de gràfics en MATLAB, incloent subplots, eixos múltiples, gràfics interactius, animacions i exportació de gràfics. Aquestes eines us permetran crear visualitzacions més complexes i personalitzades, millorant la capacitat de comunicar dades de manera efectiva. En el proper mòdul, ens endinsarem en l'anàlisi de dades i estadística amb MATLAB.
Curs de Programació en MATLAB
Mòdul 1: Introducció a MATLAB
- Començant amb MATLAB
- Interfície i Entorn de MATLAB
- Comandes i Sintaxi Bàsiques
- Variables i Tipus de Dades
- Operacions i Funcions Bàsiques
Mòdul 2: Vectors i Matrius
- Creació de Vectors i Matrius
- Operacions amb Matrius
- Indexació i Segmentació
- Funcions de Matrius
- Àlgebra Lineal en MATLAB
Mòdul 3: Estructures de Programació
- Flux de Control: if, else, switch
- Bucles: for, while
- Funcions: Definició i Abast
- Scripts vs. Funcions
- Depuració i Gestió d'Errors
Mòdul 4: Visualització de Dades
- Conceptes Bàsics de Gràfics
- Gràfics 2D
- Gràfics 3D
- Personalització de Gràfics
- Tècniques Avançades de Gràfics
Mòdul 5: Anàlisi de Dades i Estadística
- Importació i Exportació de Dades
- Estadístiques Descriptives
- Preprocessament de Dades
- Anàlisi de Regressió
- Proves Estadístiques
Mòdul 6: Temes Avançats
- Entrada/Sortida de Fitxers
- Gestió de Grans Conjunts de Dades
- Tècniques d'Optimització
- Conceptes Bàsics de Simulink
- Computació Paral·lela