Sunteți pe pagina 1din 12

Informatica aplicată 2 - MATLAB 1

CURS 11

MANIPULAREA ȘI PERSONALIZAREA GRAFICELOR

Cele mai utilizate funcții utilizate pentru manipularea și personalizarea graficelor sunt:

hold Adăugarea succesivă a reprezentărilor grafice într-un sistem de axe existent


subplot Divizarea ferestrei grafice
figure Crearea obiectelor grafice de tip figură
box Frontierele axelor
axis Scalarea și aspectul axelor
title Precizează titlul graficului
xlabel Precizează eticheta axei X
ylabel Precizează eticheta axei Y
text Plasează un text pe grafic la o poziție impusă
gtext Plasează un text pe grafic la poziția selectabilă cu mouse-ul
grid Trasează o rețea de linii "grid" pe grafic

1. Adăugarea succesivă a reprezentărilor grafice într-un sistem de axe existent (suprapunerea


succesivă)
Utilizând funcția hold se pot adăuga grafice alături de altele, în același sistem de axe.
Sintaxe:
hold determină adăugarea graficelor următoare peste cel curent, fără a-l șterge,
on
producându-se o rescalare a axelor dacă este cazul
hold off determină revenirea la setarea inițială, conform căreia, la apelul unei funcții de
reprezentare grafică, graficul anterior este șters
hold all pe lângă grafic, reține și stilul și culoarea liniei

Exemplu:
x=0:0.01:30;
y1=200*exp(-0.05*x).*sin(x);
y2=100*exp(-0.5*x).*sin(10*x);
plot(x,y1);
hold on;
plot(x,y2);
Informatica aplicată 2 - MATLAB 2

200

150

100

50

-50

-100

-150

-200
0 5 10 15 20 25 30

2. Divizarea ferestrei grafice


MATLAB-ul permite împărțirea ferestrei figură în mai multe ferestre grafice și afișarea în fiecare
fereastră a câte unui sistem de axe. Crearea acestor ferestre și controlul lor este realizat de funcția
subplot.

Sintaxe:
subplot(m,n,s) împarte fereastra figură în m × n zone dreptunghiulare de afișare (analog
unui tabel cu m linii și n coloane) și specifică fereastra (celula tabelului) în care se va face
reprezentare grafică curentă prin numărul (scalarul) s; zonele de afișare sunt numerotate de la
stânga la dreapta, începând cu linia de sus. Dacă fereastra figură a fost împărțită anterior,
apelul funcției face numai specificarea subferestrei curente în care se va crea noul sistem de
axe
subplot(m,n,v) împarte fereastra figură în m × n zone dreptunghiulare de afișare (analog
unui tabel cu m linii și n coloane) și specifică ferestrele (celulele tabelului) în care se va face
reprezentare grafică curentă prin vectorul v
subplot(m,n,v,'replace') ștergerea sistemul de ferestre grafice există deja axe și crearea
unuia nou
h=subplot(...) salvează identificatorul noului sistem de axe în variabila h
subplot(h) permite ca sistemul de axe cu identificatorul h să fie cel curent

În cazul în care apelul unei funcții subplot determină suprapunerea noului sistem de axe peste unul
existent, are loc ștergerea primului.
Informatica aplicată 2 - MATLAB 3

Exemplul 1: Reprezentarea grafică în cadrane a liniilor matricei Y=[1 5 3 4;3 2 7 6;1 5 3 7;2 6
1 9].
Y=[1 5 3 4;3 2 7 6;1 5 3 7;2 6 1 9];
subplot(2,2,1);plot(Y(1,:));
subplot(2,2,2);plot(Y(2,:));
subplot(2,2,3);plot(Y(3,:));
subplot(2,2,4);plot(Y(4,:));

Exemplul 2: Reprezentarea grafică a primelor 2 linii ale matricei Y=[1 5 3 4;3 2 7 6;1 5 3 7;2 6
1 9] în grafice separate în cadranele 1 și 3, respectiv liniile 3 și 4 în același grafic care să ocupe
cadranul 2 și 4.
Y=[1 5 3 4;3 2 7 6;1 5 3 7;2 6 1 9];
subplot(2,2,1);plot(Y(1,:));
subplot(2,2,3);plot(Y(2,:));
subplot(2,2,[2 4]);plot(Y(3,:));
hold on;
plot(Y(4,:));
Informatica aplicată 2 - MATLAB 4

3. Crearea obiectelor grafice de tip figură


Funcția figure creează obiecte grafice de tip figură. Obiectele grafice de tip figură sunt ferestre
individuale de pe ecran în care MATLAB-ul afișează ieșiri grafice.
Exemplu: Reprezentarea în obiecte grafice separate a liniilor matricei Y=[1 5 3 4;3 2 7 6;1 5 3
7;2 6 1 9].
Y=[1 5 3 4;3 2 7 6;1 5 3 7;2 6 1 9];
figure;plot(Y(1,:));
figure;plot(Y(2,:));
figure;plot(Y(3,:));
figure;plot(Y(4,:));
Informatica aplicată 2 - MATLAB 5

4. Frontierele axelor
Frontierele axelor sunt manipulate cu funcția box.
Sintaxe:
box on sunt reprezentate frontierele axelor
box off nu sunt reprezentate frontierele axelor

Exemplu: Reprezentarea primelor 2 linii ale matricei Y=[1 5 3 4;3 2 7 6;1 5 3 7;2 6 1 9] în
grafice cu, respectiv fără reprezentarea frontierele axelor.
Y=[1 5 3 4;3 2 7 6;1 5 3 7;2 6 1 9];
figure;plot(Y(1,:));box on;
figure;plot(Y(2,:));box off;

5. Scalarea și aspectul axelor


Se realizează cu funcția axis, utilizând următoarele sintaxe:
axis([xmin xmax ymin ymax]) stabilește limitele pentru axele x,y (2D)
axis([xmin xmax ymin ymax zmin zmax]) stabilește limitele pentru axele x,y,z (3D)
v=axis returnează vectorul linie v care conține factorii de scalare pentru axele x,y,z; v
poate avea patru (2D) sau șase componente (3D)
axis auto reprezintă setarea implicită; limitele axelor x,y,z sunt calculate automat pe baza
valorilor minime și maxime ale domeniului datelor
axis tight stabilește limitele axelor x,y,z strict la domeniul datelor
Informatica aplicată 2 - MATLAB 6

axis ij plasează originea sistemului de coordonate în colțul din stânga sus: i este axa
verticală cu valori care cresc de sus în jos, iar j este axa orizontală, cu valori care
cresc de la stânga la dreapta
axis xy formatul axelor este cel cartezian (implicit)
axis equal stabilește raportul de aspect, astfel ca unitățile să fie aceleași în fiecare direcție.
Raportul de aspect ale axelor x,y,z este ajustat automat în raport de domeniul
datelor
axis square realizează un grafic de formă pătrată (2D) sau cubică (3D); această opțiune ajustează
axele x,y,z astfel încât acestea au lungimi egale și ajustează unitățile de date în
mod corespunzător
axis normal reglează automat raportul de aspect al axelor x,y,z și scalarea relativă a unităților
de date, astfel încât graficul să se potrivească cât mai bine formei figurii
axis off dezactivează toate axele, gradațiile și etichetele
axis on activează toate axele, gradațiile și etichetele
Exemplul 1:
x=0:10;
y=0:2:20;
subplot(1,2,1);plot(x,y);axis equal;
subplot(1,2,2);plot(x,y);axis square;

Exemplul 2:
subplot(1,2,1);plot(0:pi/20:2*pi,sin(0:pi/20:2*pi));
subplot(1,2,2);plot(0:pi/20:2*pi,sin(0:pi/20:2*pi));axis tight
Informatica aplicată 2 - MATLAB 7

6. Înserarea de caractere speciale și expresii simple în obiectele grafice


Putem utiliza caractere speciale (ex. litere grecești) sau expresii simple în instrucțiuni care afișează
șiruri.
În tabelul următor sunt prezentate definițiile acestora:

Caracter Definiție Caracter Definiție Caracter Definiție


 \theta  \leq  \leftarrow
 \Theta  \geq → \rightarrow

Π \Pi ≠ \neq  \uparrow


 \alpha ' \prime  \downarrow
± \pm ∂ \partial → \leftrightarrow

 \infty  \equiv
 \int

× \times ÷ \div \surd


└ \lfloor ┘ \rfloor
 \subseteq  \supseteq

Definiția literelor grecești mari începe cu literă mare, a celor mici cu literă mică, de exemplu \Omega
pentru Ω și respectiv \omega pentru ω.
Expresiile se definesc după următoarele reguli:
 expresii cu exponenți; expresia ab se definește ca a^b
 expresii cu indici; expresia xi se definește ca x_i
 dacă este cazul, expresiile se pot grupa între acolade, { }
Informatica aplicată 2 - MATLAB 8

Expresia eat se definește astfel:


e^a^t

sau:
e^{at}

Expresia ai se definește ca:


a_i

iar expresia xi+j se definește ca:


x_{i+j}

Pentru a afișa un text inclinat (italic), vom defini acel text ca:
\ittextul dorit

iar pentru afișare cu litere groase (bold) vom defini textul ca:
\bftextul dorit

7. Precizarea titlului graficului


Titlul graficului curent se plasează deasupra acestuia cu funcția title
Se apelează cu sintaxa:
title('text')

unde 'text' este un șir de caractere care reprezintă titlul graficului.


Instrucțiunea:
title(date)

plasează data în care se face graficul în partea superioară a acestuia.


Exemplul 1: Să se reprezinte distribuția normală, graficul având titlul DISTRIBUTIA GAUSSIANA.
y=randn(1000,1);
hist(y,16);title('\it\bfDISTRIBUTIA GAUSSIANA')%italic+bold
Informatica aplicată 2 - MATLAB 9

Exemplul 2: Includerea variabilelor în titlu.


a=2;t=0:.1:4.5;v=a*t;
plot(t,v);title(['Variatia vitezei pentru acc=',num2str(a),'m/s^2'])

8. Precizarea etichetei axelor


Precizarea numelui mărimilor reprezentate pe fiecare axă, precum și a unităților de măsură folosite,
se face cu funcțiile xlabel (pentru axa x), ylabel (pentru axa y).
Se apelează cu sintaxele:
xlabel('text')
ylabel('text')

unde 'text' este un șir de caractere care reprezintă numele axei, unitatea de măsură etc. ale
graficului curent. Repetarea instrucțiunii cu alt text conduce la înlocuirea textului anterior, fără a fi
necesară refacerea reprezentării grafice.

Exemplu:
a=2;t=0:.1:4.5;v=a*t;
plot(t,v);
xlabel('timpul,[s]','FontSize',14);
ylabel('viteza,[m/s]','FontSize',14);
title(['Variatia vitezei pentru acc=',num2str(a),'m/s^2'],'FontSize',18)
Informatica aplicată 2 - MATLAB 10

9. Plasarea unui text pe grafic


Plasarea unui text în câmpul grafic se face cu funcțiile text sau gtext
Se apelează cu sintaxele:
text(x,y,'text')
gtext('text')

Funcția text scrie șirul de caractere 'text' în poziția specificată de coordonatele (x,y). Dacă x
și y sunt vectori, funcția text scrie șirul de caractere 'text' în toate pozițiile date de perechile
(x,y).

Exemplu:
plot(0:pi/20:2*pi,sin(0:pi/20:2*pi));
text(pi,0,'\leftarrow sin(\pi)','FontSize',18)
Informatica aplicată 2 - MATLAB 11

Funcția gtext afișează șirul de caractere 'text' în fereastra grafică și așteaptă plasarea acestuia
pe grafic cu mouse-ul sau oricare tastă.

Exemplu:
plot(0:pi/20:2*pi,sin(0:pi/20:2*pi));
gtext('\leftarrow sin(\omega)','FontSize',18)

10. Trasarea unei rețele pe grafic


Grid-ul este o rețea de linii verticale și orizontale pe un grafic care ușurează citirea datelor. O astfel de
rețea se trasează cu funcția grid
Se apelează cu una din sintaxele:
grid on
grid off
grid
grid minor

Dacă funcția grid este setată on, pe grafic sunt reprezentate liniile grid, iar dacă este off,
acestea sunt eliminate. Funcția grid stabilește proprietățile obiectului “axe curente”.
Exemplu:
a=2;t=0:.1:4.5;v=a*t;
plot(t,v);grid minor
xlabel('timpul,[s]','FontSize',14);ylabel('viteza,[m/s]','FontSize',14);
title(['Variatia vitezei pentru acc=',num2str(a),'m/s^2'],'FontSize',18);
text(t(20),v(20),['\leftarrow v=',num2str(v(20)),'m/s'],'FontSize',18);
Informatica aplicată 2 - MATLAB 12

Bibliografie
1. ***, Fundamente de Matlab, telecom.etti.tuiasi.ro/
2. Iulian Lupea, Curs Matlab
3. Nicoleta Breaz ș.a., Modelarea matematică prin Matlab
4. ***, MATLAB User’s Guide, The Mathworks Inc., SUA

S-ar putea să vă placă și