Sunteți pe pagina 1din 15

Informatica aplicată 2 - MATLAB 1

CURS 10

GRAFICĂ ÎN MATLAB. REPREZENTĂRI GRAFICE 2D

Principalele funcții MATLAB pentru reprezentări grafice 2D:

plot Reprezintă grafice în coordonate X-Y liniare


loglog Reprezintă grafice în coordonate X-Y logaritmice
semilogx
Reprezintă grafice în coordonate X-Y semilogaritmice (axa X este
logaritmică)
semilogy
Reprezintă grafice în coordonate X-Y semilogaritmice (axa Y este
logaritmică)
Reprezintă două grafice în aceeași fereastră figură: unul cu axa Y
plotyy
afișată în stânga, iar celalalt cu axa Y afișată în dreapta
bar Reprezintă grafice cu bare
area Reprezintă grafice de tip arie
pie Reprezentări grafice de tip “plăcintă”
fplot Realizează controlul reprezentărilor grafice cu parametri impuși
comet Reprezintă dinamic (în mișcare) traiectoria unui punct

1. Reprezentarea grafică în coordonate liniare


Pentru reprezentarea datelor în coordonate liniare se utilizează funcția plot
Sintaxe:
plot(Y) reprezintă grafic argumentul Y funcție de indici, cu următoarele precizări:
a) dacă Y este vector, se trasează graficul Y=Y(i), unde i=1, 2,..., n este numărul
de ordine al elementului Y, culoarea liniei fiind albastră
b) dacă Y este o matrice m x n, se trasează graficele Yj=Yj(i), unde i=1, 2...., n
este numărul de ordine al elementului de pe coloana j, culorile liniilor fiind alese de
program
plot(X,Y) reprezintă grafic argumentul Y funcție de X cu următoarele precizări:
a) dacă X este vector, iar Y este o matrice, atunci coloanele lui Y sunt trasate funcție
de vectorul X; curba graficului este de tip continuu, culorile liniilor fiind alese de
program
b) dacă X și Y sunt matrice de aceeași dimensiune, se reprezintă coloanele lui Y
funcție de coloanele lui X; curba graficului este de tip continuu, culorile liniilor fiind
alese de program
plot(X1,Y1,...,Xn,Yn) reprezintă simultan mai multe grafice Y funcție de X în același
sistem de coordonate, observațiile de la plot(X,Y) rămân valabile
Informatica aplicată 2 - MATLAB 2

plot(X,Y,'Tip linie,marker,culoare') graficele se pot reprezenta utilizând linii, markere


și culori după codul din tabelul 1; pentru reprezentările grafice, se asociază fiecărei
caracteristici un șir de 1, 2 sau 3 caractere, dintre cele menționate în tabelul 1; aceste șiruri de
caractere trebuie cuprinse între apostrofuri și menționate în combinația tip linie-tip marker-
culoare, tip linie-culoare, sau tip marker-culoare; dacă se precizează o singură caracteristică
(marker, linie sau culoare), celelalte sunt alese de program

Tabelul 1
Tipul liniei Tipul markerului Culoare
continuă - plus + roșu r
întreruptă -- cerc o verde g
puncte : steluță * albastru b
linie-punct -. punct . albastru deschis c
cruce x mov m
pătrat 'square' sau s galben y
hexagon 'diamond' sau d negru k
triunghi cu vârful în sus ^ alb w
triunghi cu vârful în jos v
triunghi cu vârful în dreapta >
triunghi cu vârful în stânga <
stea în 5 colțuri 'pentagram' sau p
stea în 6 colțuri 'hexagram' sau h

De asemenea, pot fi setate următoarele caracteristici:


a) grosimea liniilor graficelor: 'LineWidth',valoare
b) culoarea laturilor markerelor: 'MarkerEdgeColor','culoare'
c) culoarea fețelor markerelor: 'MarkerFaceColor','culoare'
d) dimensiunea markerelor: 'MarkerSize',valoare
Exemplu: Să se traseze pe același grafic variația funcțiilor sin și cos pentru valori cuprinse între 0 și
2π pentru exact 20 de valori discrete.
x=linspace(0,2*pi,20);
y1=sin(x);y2=cos(x);
plot(x,y1,'-ob',x,y2,'--sm','LineWidth',1,'MarkerEdgeColor','k',...
'MarkerFaceColor','y','MarkerSize',5)
Informatica aplicată 2 - MATLAB 3

2. Reprezentarea grafică în coordonate logaritmice și semilogaritmice


Pentru reprezentările grafice în coordonate logaritmice sau semilogaritmice se utilizează funcțiile
loglog, semilogx, semilogy

Sintaxe:
loglog(X,Y)
semilogx(X,Y)
semilogy(X,Y)

Funcția loglog scalează ambele axe utilizând logaritmul în baza 10, în timp ce funcțiile semilogx
și semilogy scalează logaritmic numai axa x, respectiv axa y, cealaltă axă fiind scalată liniar.
Modul de utilizare al acestor funcții este identic cu cel al funcției plot

Exemplu: Să se reprezinte în coordonate semilogaritmice funcția y = 10x , pentru x [0,10]


x=0:10;
y=10.^x;
semilogy(x,y,'-or','LineWidth',1,'MarkerEdgeColor','k',...
'MarkerFaceColor','y','MarkerSize',5)
Informatica aplicată 2 - MATLAB 4

3. Reprezentarea grafică în coordonate liniare cu axa Y pe stânga și dreapta


Atunci când domeniile datelor care se doresc a fi reprezentate pe axa y sunt mult diferite, sau când
se dorește reprezentarea grafică în același sistem de axe a unor funcții cu axele y scalate diferit, este
utilă funcția plotyy. Aceasta reprezintă două perechi de grafice ale căror gradații pe axele y sunt
în stânga, respectiv dreapta graficelor.
Se apelează cu sintaxele:
plotyy(X1,Y1,X2,Y2) trasează grafic funcția Y1=f(X1) cu axa y plasată la marginea stânga
a zonei delimitate de sistemul de axe și funcția Y2=f(X2) cu axa y plasată în dreapta;
reprezentările grafice sunt în coordonate liniare (cu funcția plot)
plotyy(X1,Y1,X2,Y2,'tipGrafic') permite, față de sintaxa precedentă, specificarea
modului de scalare a axelor, deci a funcției folosite la reprezentări, prin argumentul
tipGrafic: plot, loglog, semilogx, semilogy

plotyy(X1,Y1,X2,Y2,'tipGrafic1','tipGrafic2') utilizează tipGrafic1(X1,Y1)


pentru reprezentarea grafică în sistemul de axe cu axa y în stânga și tipGrafic2(X2,Y2)
pentru reprezentarea grafică în sistemul de axe cu axa y în dreapta

Exemplu: Să se reprezinte funcțiile f1 ( x ) = 200  e −0.05x  sin ( x ) și f2 ( x ) = 0,5  e−0.05x  sin (10  x ) , pentru
x   0,30  cu funcția plotyy
x=0:0.01:30;
y1=200*exp(-0.05*x).*sin(x);
y2=0.5*exp(-0.5*x).*sin(10*x);
plotyy(x,y1,x,y2,'plot');
Informatica aplicată 2 - MATLAB 5

4. Reprezentarea graficelor cu bare


Reprezentarea grafică cu bare se face cu funcția bar
Sintaxe:
bar(Y) dacă Y este vector se trasează un grafic de bare egale ca înălțime cu elementele sale;
dacă Y este matrice barele sunt grupate pe linii!!!; axa X este generată automat, în funcție
de length(Y) când Y este un vector și size(Y,1) când Y este o matrice
bar(x,Y) trasează un grafic de bare cu elementele vectorului sau matricei Y la locațiile
specificate de vectorul x; dacă Y este vector, lungimea vectorului x trebuie să fie egală cu
length(Y), respectiv size(Y,1) când Y este matrice; elementele vectorului x nu trebuie
să fie monotone, dar nu pot fi duplicate
bar(...,latime) stabilește lățimea relativă a barei și controlează separarea barelor în cadrul
unui grup; lățimea implicită este de 0.8, caz în care barele din cadrul unui grup au o ușoară
separare; dacă lățimea este setată la 1, barele dintr-un grup sunt alăturate; valoarea lățimii
trebuie să fie un scalar
bar(...,'stil') specifică stilul barelor:
'grouped' (grupat) grupează m bare = numărul de coloane ale lui Y, în n grupuri =
numărul de rânduri ale lui Y; este stilul implicit
'stacked' (suprapuse) afișează o bară pentru fiecare rând al lui Y; înălțimea barei
reprezintă suma elementelor din rândul respectiv; fiecare bară este multicoloră, cu culori
corespunzătoare elemente distincte și care arată contribuția relativă a fiecărui element
din rând la suma totală
bar(...,'culoare') afișează barele folosind culoarea specificată: 'r', 'g', 'b', 'c',
'm', 'y', 'k', 'w'

Exemplul 1: Să se reprezinte graficul cu bare al datelor conținute în vectorul y=[1 3 7 6 5 2 3]


specificate de vectorul x=[2 4 6 8 10 12 14].
y=[1 3 7 6 5 2 3];
x=[2 4 6 8 10 12 14];
bar(x,y,'r');
Informatica aplicată 2 - MATLAB 6

Exemplul 2: Să se reprezinte graficul cu bare al datelor conținute în matricea Y=[1 3 7 6 5 2 3;4


6 2 7 4 5 8]
Y=[1 3 7 6 5 2 3;4 6 2 7 4 5 8];
bar(Y,'stacked');

5. Reprezentarea graficelor de tip arie


Reprezentarea grafică de tip arie se face cu funcția area. Afișează elemente din Y cu una sau mai
multe curbe și umple (colorează) zona de sub fiecare curbă. Atunci când Y este matrice, curbele sunt
suprapuse astfel încât arată contribuția relativă a elementelor fiecărui rând la înălțimea totală a
curbei.
Sintaxe:
area(Y) dacă Y este vector se trasează graficul ca și în cazul funcției plot cu diferența că
zona dintre axa Ox și curbă este colorată; dacă Y este matrice, curbele sunt suprapuse astfel
încât arată contribuția relativă a elementelor fiecărui rând la înălțimea totală a curbei (sumele
pe rânduri), iar axa X este generată automat, în funcție de length(Y) când Y este un vector
și size(Y,1) când Y este o matrice
area(X,Y) dacă X este vector, trebuie să fie monoton, iar lungimea sa trebuie să fie egală cu
lungimea vectorului Y; dacă X este o matrice, fiecare coloană trebuie să fie monotonă, iar
dimensiunea ei trebuie să fie egală cu dimensiunea matricei Y; pentru a face un vector/
matrice monoton/ monotonă, se utilizează funcția sort
Exemplul 1: Să se traseze variația funcției sin pentru valori cuprinse între 0 și 2π pentru exact 200
de valori discrete.
x=linspace(0,2*pi,200);
y=sin(x);
area(x,y);
Informatica aplicată 2 - MATLAB 7

Exemplul 2: Să se reprezinte graficul de tip arie al datelor conținute în matricea Y=[1 5 3;3 2 7;1
5 3;2 6 1]
Y=[1 5 3;3 2 7;1 5 3;2 6 1];
area(Y);colormap autumn

Numele hărților de culoare de tip built-in sunt următoarele:


Informatica aplicată 2 - MATLAB 8

6. Reprezentări grafice de tip “plăcintă”


Se face cu funcția pie
Sintaxe:
pie(X) trasează o diagramă cu structură radială folosind datele din X; fiecare element din X
este reprezentat ca o felie din diagrama de tip plăcintă
pie(X,explode) detașează una sau mai multe felii din plăcintă; explode este un vector/
matrice cu elemente 0 și 1 care corespund vectorului/ matricei X după cum urmează:
valorile 1 corespund feliilor care se doresc detașate, 0 celor care rămân pe loc
pie(...,labels) precizează etichetele text pentru felii; numărul de etichete trebuie să fie
egal cu numărul de elemente din X
Observație: Valorile din X sunt normalizate prin X/sum(X) pentru a determina mărimea fiecărei
felii de plăcintă. În cazul în care sum(X)≤1, valorile din X specifică direct mărimea feliilor de
plăcintă. În cazul în care sum(X)<1 va fi generată doar o parte dintr-o plăcintă.
Exemplu: Notele obținute de o grupă de studenți au fost următoarele: 3 note sub nota 5, 4 note între
5 și 6, 5 între 6 și 7, 5 între 7 și 8, 4 între 8 și 9 și 3 între 9 și 10. Să se reprezinte rezultatele printr-un
grafic de tip plăcintă, cu feliile corespunzătoare notelor sub 5, respectiv notelor cuprinse între 9 și 10
detașate.
x=[3 4 5 5 4 3]; x=[3 4 5 5 4 3];
pie(x,[1 0 0 0 0 1],... pie(x,[1 0 0 0 0 1])
{'<5','5-6','6-7','7-8','8-9','9-10'}) colormap HSV
colormap jet
Informatica aplicată 2 - MATLAB 9

7. Reprezentări grafice cu parametri impuși


Funcția fplot realizează o reprezentare grafică cu anumite restricții.
Sintaxă:
fplot('functie',limite,n) funcția fplot reprezintă grafic 'functie' între limitele
specificate de argumentul limite; argumentele funcției fplot au următoarele semnificații:
'functie' - numele fișierului funcție (șir de caractere)

limite=[xmin xmax] - limitele axei x pentru care se dorește reprezentarea grafică;

n - numărul de eșantioane cu care este reprezentată funcția (implicit n=25)

Exemplu: Fie fișierul funcție înregistrat cu numele test.m


function y=test(x)
y=sin(x)./x;

Să se reprezinte grafic funcția din fișierul test.m, între limitele [-20,20], cu n=50 eșantioane.
fplot('test',[-20 20],50);grid

8. Reprezentări grafice dinamice


Se folosește funcția comet
Sintaxe:
comet(y) realizează reprezentarea grafică a vectorului y prin intermediul unei "comete"
formată din "cap" (marker de tip cerc) și o "coadă" cu lungimea de 0,1 din cea a vectorului y
comet(x,y) realizează reprezentarea grafică a vectorului y funcție de valorile vectorului x
prin intermediul unei "comete" formată din "cap" (marker de tip cerc) și o "coadă" cu lungimea
de 0,1 din cea a vectorului y
comet(x,y,p) p setează lungimea cozii din cea a vectorului y
Exemplu: Să se reprezinte dinamic funcția test pe intervalul [-20,20] cu "coada" de 0,2
x=linspace(-20,20,10000);
y=test(x);
comet(x,y,0.2);
Informatica aplicată 2 - MATLAB 10

GRAFICĂ ÎN MATLAB. REPREZENTĂRI GRAFICE 3D

Principalele funcții MATLAB pentru reprezentări grafice 3D elementare sunt:

plot3 Reprezintă grafice 3D în coordonate X, Y, Z liniare


bar3/bar3h Reprezintă grafice 3D cu bare verticale/orizontale
pie3 Reprezentări grafice 3D de tip “plăcintă”
comet3 Reprezintă dinamic (în mișcare) traiectoria unui punct

1. Reprezentarea grafică în coordonate 3D liniare


Pentru reprezentarea datelor în coordonate 3D liniare se utilizează funcția plot3
Sintaxe:
plot3(X,Y,Z) unde X,Y,Z sunt vectori sau matrice și realizează o curbă în spațiul
tridimensional după cum urmează:
a) dacă X,Y,Z sunt vectori de aceeași dimensiune, reprezintă grafic o linie în spațiul 3D,
linie care trece prin punctele ale căror coordonate sunt tripletele [X(i),Y(i),Z(i)]
b) dacă X,Y,Z sunt matrice de aceeași dimensiune, reprezintă grafic câte o linie în
spațiul 3D, pentru fiecare triplet al coloanelor matricelor [X(:,i),Y(:,i),Z(:,i)]
plot3(X1,Y1,Z1,X2,Y2,Z2,...) reprezintă simultan mai multe grafice X1,Y1,Z1, ...,
Xn,Yn,Zn

plot3(X1,Y1,Z1,'Tip linie,marker,culoare',...) graficele sunt realizate utilizând linii,


markere și culori specificate
Exemplu: Să se reprezinte grafic o elice tridimensională.
t=linspace(0,10*pi,100);
plot3(sin(t),cos(t),t,'-ob','LineWidth',1,'MarkerEdgeColor','k',...
'MarkerFaceColor','y','MarkerSize',5);grid
Informatica aplicată 2 - MATLAB 11

2. Reprezentarea graficelor 3D cu bare


Reprezentarea grafică 3D cu bare se face cu funcția bar3, respectiv bar3h
Sintaxe:
bar3(Y) dacă Y este vector se trasează un grafic de bare egale ca înălțime cu elementele sale;
dacă Y este matrice barele sunt grupate pe linii; axa X este generată automat, în funcție de
length(Y) când Y este vector și size(Y,1) când Y este matrice

bar3(x,Y) trasează un grafic de bare cu elementele vectorului sau matricei Y la locațiile


specificate de vectorul x; dacă Y este vector, lungimea vectorului x trebuie să fie egală cu
length(Y), respectiv size(Y,1) când Y este matrice; elementele vectorului x nu trebuie
să fie monotone, dar nu pot fi duplicate
bar3(...,latime) stabilește lățimea relativă a barei și controlează separarea barelor în
cadrul unui grup; lățimea implicită este de 0,8, caz în care barele din cadrul unui grup au o
ușoară separare; dacă lățimea este setată la 1, barele dintr-un grup sunt alăturate; valoarea
lățimii trebuie să fie un scalar
bar3(...,'stil') specifică stilul barelor:
'grouped' (grupat) grupează n bare=numărul de coloane ale lui Y, în m
grupuri=numărul de rânduri ale lui Y; este stilul implicit
'stacked' (suprapuse) afișează o bară pentru fiecare rând al lui Y; înălțimea barei
reprezintă suma elementelor din rândul respectiv; fiecare bară este multicoloră, cu culori
corespunzătoare elemente distincte și care arată contribuția relativă a fiecărui element
din rând la suma totală
bar3(...,'culoare') afișează barele folosind culoarea specificată: 'r', 'g', 'b', 'c',
'm', 'y', 'k', 'w'

bar3h(...) reprezintă grafice 3D cu bare orizontale fiind valabile sintaxele de la bar3


Exemplul: Să se reprezinte graficul 3D cu bare al datelor conținute în matricea Y=[1 3 7 6 5 2 3;4
6 2 7 4 5 8]
Y=[1 3 7 6 5 2 3;4 6 2 7 4 5 8];
bar3(Y);colormap HSV;
Informatica aplicată 2 - MATLAB 12

3. Reprezentări grafice 3D de tip “plăcintă”


Se face cu funcția pie3
Sintaxe:
pie3(X) generează o diagramă 3D cu structură radială folosind datele din X; fiecare element
din X este reprezentat ca o felie din diagrama de tip plăcintă
pie3(X,explode) detașează una sau mai multe felii din plăcintă; explode este un vector/
matrice cu elemente 0 și 1 care corespund vectorului/ matricei X după cum urmează:
valorile 1 corespund feliilor care se doresc detașate, 0 celor care rămân pe loc
pie3(...,labels) precizează etichetele text pentru felii; numărul de etichete trebuie să fie
egal cu numărul de elemente din X
Observație: Valorile din X sunt normalizate prin X/sum(X) pentru a determina mărimea fiecărei felii
de plăcintă. În cazul în care sum(X)≤1, valorile din X specifică direct mărimea feliilor de plăcintă. În
cazul în care suma(X)<1 va fi generată doar o parte dintr-o plăcintă.
Exemplu: Notele obținute de o grupă de studenți au fost următoarele: 3 note sub nota 5, 4 note între
5 și 6, 5 între 6 și 7, 5 între 7 și 8, 4 între 8 și 9 și 3 între 9 și 10. Să se reprezinte rezultatele printr-un
grafic 3D de tip plăcintă, cu feliile corespunzătoare notelor sub 5, respectiv notelor cuprinse între 9 și
10 detașate.
x=[3 4 5 5 4 3]; x=[3 4 5 5 4 3];
pie3(x,[1 0 0 0 0 1],... pie3(x,[1 0 0 0 0 1])
{'<5','5-6','6-7','7-8','8-9','9-10'}) colormap HSV
colormap jet
Informatica aplicată 2 - MATLAB 13

Reprezentări grafice 3D dinamice


Se folosește funcția comet3
Sintaxe:
comet3(z) realizează reprezentarea grafică 3D a vectorului z prin intermediul unei "comete"
formată din "cap" (marker de tip cerc) și o "coadă" cu lungimea de 0,1 din cea a vectorului z
comet3(x,y,z) realizează reprezentarea grafică 3D a vectorului z funcție de valorile
vectorilor x,y prin intermediul unei "comete" formată din "cap" (marker de tip cerc) și o
"coadă" cu lungimea de 0,1 din cea a vectorului z
comet3(x,y,z,p) p setează lungimea cozii din cea a vectorului z
Exemplu: Să se reprezinte dinamic funcțiile cos(2t)2∙sin(t) și sin(2t)2∙cos(t)pe intervalul [-10π, 10 π].
t=linspace(-10*pi,10*pi,5000);
comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t);

REPREZENTAREA SUPRAFEȚELOR (FUNCȚII DE 2 VARIABILE)


Funcțiile MATLAB pentru reprezentări de tip cadru de sârmă:
mesh Reprezentări de tip cadru de sârmă cu ochiurile necolorate a suprafețelor
surf Reprezentări de tip cadru de sârmă cu ochiurile colorate a suprafețelor

1. Reprezentări de tip ”cadru de sârmă” colorat


Se face cu funcția mesh
Sintaxe:
mesh(Z) desenează o suprafață tip cadru de sârmă definită de matricea Z pe baza vectorilor
x=1:n și y=1:m, unde [m,n]=size(Z). Culorile “sârmei” folosite în reprezentare depind de
valorile matricei Z
mesh(X,Y,Z) dacă X,Y sunt vectori, length(X)=n și length(Y)=m, unde [m,n]=size(Z);
în acest caz (X(i),Y(j),Z(i,j)) sunt intersecțiile liniilor grilei cadrului de sârmă, iar X și Y
corespund coloanelor, respectiv liniilor lui Z. Dacă X,Y,Z sunt matrice de aceeași dimensiune
se obține o reprezentare de tip cadru de sârmă a suprafeței parametrice specificate de X,Y,Z;
valorile (X(i,j),Y(i,j),Z(i,j)) sunt intersecțiile liniilor cadrului de sârmă
Exemplu:
[X,Y]=meshgrid(-10:.5:10,-10:.5:10);
R=sqrt(X.^2+Y.^2);
Z=sin(R)./R;
mesh(X,Y,Z)
Informatica aplicată 2 - MATLAB 14

2. Reprezentări de tip ”cadru de sârmă” cu ochiuri colorate


Se face cu funcția surf
Sintaxe:
surf(Z)
surf(X,Y,Z)

Funcția surf produce grafice asemănătoare cu cele obținute cu ajutorul funcției mesh, dar cu
deosebirea că ochiurile suprafeței sunt colorate.
Exemplu:
[X,Y]=meshgrid(-10:.5:10,-10:.5:10);
R=sqrt(X.^2+Y.^2);
Z=sin(R)./R;
surf(X,Y,Z)
Informatica aplicată 2 - MATLAB 15

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