Documente Academic
Documente Profesional
Documente Cultură
Utilizarea Sistemului Matlab - Pentru Aplicatii Grafice
Utilizarea Sistemului Matlab - Pentru Aplicatii Grafice
line obiecte grafice primitive de baz pentru cele mai multe grafice 2D;
patch- obiecte care constau n poligoane pline i laturile acestora;
surface obiecte 3D care corespund repreyentrilor grafice 3D a matricelor de date;
text obiecte de tipul ir de caractere;
light obiecte care definesc surse de lumin care afecteaz toate obiectele n interiorul
unui sistem de axe.
Fiecare tip de obiect grafic are o serie de proprieti ce pot fi modificate (setate). Sistemul
MATLAB asociaz fiecrui obiect grafic creat un identificator ("handle"). Pentru a putea accesa
proprietile obiectului, este util ca, la crearea acestuia, s se rein identificatorul ntr-o
variabil.
Modificarea proprietilor obiectelor grafice se realizeaz apelnd comanda set, care are
urmtoarea sintax:
set (identificator, ' numele_proprietii' , valoarea_proprietii)
Pentru a obine valoarea curent a unei proprieti se apeleaz funcia get cu urmtoarea
sintax:
get (identificator, ' numele_proprietii' )
Identificatorul obiectului rdcin este totdeauna 0. Pentru obiectul figur, n mod implicit
acesta este un numr ntreg afiat n bara de titlu a ferestrei grafice. n versiunile mai noi de
MATLAB (ncepnd cu 5), prin setarea proprietii IntegerHandle a figurii la valoarea off,
identificatorul figurii poate fi un numr n virgul flotant. Identificatorii oricror alte obiecte
grafice sunt numere n virgul flotant.
Exist i urmtorii identificatori predefinii:
gcf pentru fereastra figur curent (Get Current Figure)
gca pentru sistemul de axe curent (Get Current Axes)
Exemple de utilizare a funciilor set i get
set(gcf, 'color', 'w') stabilete culoarea alb pentru figura curent
set(gca, 'color', 'y') stabilete culoarea galben pentru sistemul de axe curent
get(gcf, 'color') returneaz culoarea figurii curente
get(gca, 'color') returneaz culoarea sistemului de axe curent
3. Fereastra figur
MATLAB afieaz reprezentrile grafice ntr-o fereastr diferit de cea de comand numit
fereastra figur ("Figure window"). Caracteristicile acesteia sunt controlate de posibilitile
sistemului de afiare al calculatorului i de proprietile obiectului figur.
Funciile grafice creeaz n mod automat o nou fereastr figur, dac nu exist deja una
curent. Dac exist, aceasta va fi folosit pentru afiare. n cazul n care exist mai multe
ferestre figur, afiarea va avea loc n figura desemnat a fi cea curent, n mod uzual ultima
fereastr utilizat.
Pentru a crea o nou fereastr figur care va deveni curent, se apeleaz funcia figure, cu
una din urmtoarele sintaxe posibile:
figure
h = figure
Varianta a doua se foloseste pentru ca identificatorul noii figuri s fie reinut n variabila h n
scopul accesrii ulterioare a figurii.
Dac exist mai multe obiecte figur, stabilirea figurii cu identificatorul h ca fiind cea
curent, se realizeaz cu sintaxa
figure(h)
'Position')
Observaie
n mod implicit, fondul ferestrei figur este negru pentru versiunile MATLAB inferioare lui
5 i gri ncepnd cu MATLAB 5. Pentru a modifica fondul ferestrei figur, exist dou
posibiliti:
- se folosete comanda set pentru a modifica proprietatea 'Color' la valoarea dorit;
- se folosete whitebg.
Sintaxe posibile:
whitebg(fig, c) stabilete fondul implicit al sistemului de axe pentru figurile ai cror
identificatori sunt inclui n vectorul fig la valoarea specificat n c. Fondul ferestrei figur se
schimb (o nuan apropiat culorii fondului sistemului de axe) astfel nct s fie meninut un
contrast adecvat. Argumentul c poate fi un vector de dimensiunea 1x3 (vector RGB), sau un ir
de caractere care definete culoarea (spre exemplu 'white' or 'w'). Dac proprietatea color a
sistemului de axe este 'none', culoarea figurii (n locul culorii sistemului de axe) este setat la
culoarea specificat.
whitebg(fig) lucreaz ca un comutator i comut culoarea obiectelor grafice din
figurile specificate n fig la valoarea complementar cele actuale. Sintaxa este folosit n mod
uzual pentru comutarea ntre alb i negru. Dac pentru fig se specific 0 (root window) va fi
afectat culoarea implicit pentru noile figuri.
whitebg i whitebg(c) sintaxe fr specificarea identificatorilor unor figuriafecteaz fereastra curent i noile figuri.
4
Dac y este un vector de dimensiune n, sintaxa traseaz graficul y = y(i), unde i = 1n este
indexul elementelor vectorului.
Dac y este o matrice de dimensiune m x n, vor fi trasate n grafice de forma yj = yj(i), unde
i = 1m este indexul elementelor de pe coloana j.
b) plot (x, y)
c)
Aceast sintax este folosit pentru a reprezenta simultan mai multe grafice, corespunznd
mai multor perechi de argumente (x1, y1), (x2, y2) .a.m.d. n acelai sistem de coordonate.
d) plo t( , nume_proprietate1', valoare_proprietate1,
valoare_proprietate2 )
nume_proprietate2',
permite specificarea valorilor unor proprieti pentru obiectele de tip line nc din momentul
crerii acestora; acestea se aplic tuturor liniilor create.
e)
Ultimul argument este un ir de caractere format din simbolurile unuia sau tuturor 3
caracteristicilor liniei de trasare, ordinea precizrii acestora neavnd importan. Simbolurile
disponibile i semnificaiile acestora sunt prezentate n tabelul 1.
Simbol
y
m
c
r
Culoare
Semnificaie
galben
mov
albastru-deschis
rou
Tip linie
Simbol
Semnificaie
continu
-ntrerupt
:
punctat
-.
linie-punct
5
Simbol
.
o
x
+
Tip marcator
Semnificaie
punct
cerc
marcatorul x
plus
g
b
w
k
verde
albastru
alb
negru
*
s
d
v
^
<
>
p
h
asterisc
ptrat
diamant
triunghi isoscel cu un vrf n jos
triunghi isoscel cu un vrf n sus
triunghi isoscel cu un vrf la stnga
triunghi isoscel cu un vrf la dreapta
pentagrama (stea cu 5 coluri)
hexagrama (stea cu 6 coluri)
y2,
stabilete cele trei caracteristici pentru liniile asociate fiecarei perechi de argumente de intrare
x,y.
g) h = plot(...)
Exemplu de creare a unui meniu contextual pentru un obiect de tip line care va permite
alegerea tipului de linie de trasare
1. Se creeaz obiectul linie cu salvarea identificatorului ntr-o variabil:
l = plot(1:5, 1:5);
2. Se creeaz obiectul de tip uicontextmenu:
mc = uicontextmenu;
3. Se definesc articolele de meniu contextual ;i operaile care vor fi executate la selectarea
lor:
op1=[set(l, linestyle, --)];
op2=[set(l, linestyle, :)];
op3=[set(l, linestyle, -)];
op4=[set(l, linestyle, -.)];
articol1=uimenu(mc,label, linie intrerupta,callback, op1);
articol2=uimenu(mc,label, linie punctata,callback, op2);
articol3=uimenu(mc,label, linie continua,callback, op3);
articol4=uimenu(mc,label, linie-punct,callback, op4);
4. Se asociaz meniul contextual obiectului linie
set(l, uicontextmenu,mc);
1) Oricare din perechile x,y pot fi, n mod independent, de tipul vector-vector, vectormatrice sau matrice-matrice. Este permis astfel reprezentarea grafic, n oricare din cele
dou sisteme de axe, a mai multor grafice.
2) Utiliznd funcia plotyy, nu se pot controla caracteristicile liniilor de trasare n
momentul trasrii acestora. Vor fi folosite ciclic 7 culori.
3) Dac una din perechile de date este de tip vector-vector (afiarea unui singur grafic n
sistemul de axe respectiv), axa y corespunztoare va avea aceeai culoare cu graficul
asociat. n caz contrar, culoarea axei y este negru.
4) Modificarea proprietilor liniilor de trasare cu ajutorul editorului de plot nu este posibil
dect pentru graficele asociate perechii x2,y2.
5) Caracteristicile liniilor de trasare corespunztoare perechii x1,y1 pot fi totui modificate
prin specificarea unor noi valori pentru proprietile obiectelor grafice ai cror
identificatori sunt coninui n variabila h1. Se poate astfel specifica, spre exemplu:
culoarea, prin proprietatea 'Color';
stilul de linie, prin proprietatea 'LineStyle';
grosimea liniei, prin proprietatea 'LineWidth';
tipul de marcator, prin proprietatea 'Marker';
dimensiunea marcatorului, prin proprietatea 'MarkerSize'.
Valorile acceptate pentru 'Color', 'LineStyle' i 'Marker' sunt iruri de caractere ce conin
simbolurile prezentate n tabelul 1 din lucrarea 2. n plus, pentru proprietatea 'Color'
poate fi folosit i vectorul RGB cu 3 componente avnd valori cuprinse ntre 0 i 1 care
reprezint ponderea culorilor rou, verde i albastru n culoarea dorit. Pot fi astfel
obinute i nuane de culori.
6) Pentru stabilirea valorii unei proprieti a oricrui obiect grafic, se apeleaz funcia set,
care are sintaxa
set(identificator,'nume_proprietate', valoare_proprietate)
Exemple:
set(h1,'Color',[1 0.4 0.6])
identificatorul h1;
set(h2,'Color','g')
identificatorul h2;
set(h1(2),'LineStyle',':') - stabilete tipul de linie punctat pentru
reprezentarea grafic cu identificatorul h1(2), care este al doilea grafic specificat n
perechea de date x1,y1;
set(h1(1),'LineWidth',2) - stabilete valoarea 2 pentru grosimea liniei cu
care s-a realizat reprezentarea grafic cu identificatorul h1(1), care este primul grafic
specificat n perechea de date x1,y1;
7) Pentru a obine valoarea curent a unei proprieti se apeleaz funcia get cu urmtoarea
sintax:
get (identificator, ' nume_proprietate' )
semnificaia ponderii culorilor de baz (rou, verde i albastru) n culoarea respectiv. n acest
ultim caz, pot fi obinute i nuane de culori. Corespondena dintre culorile de baz i forma
vectorului [r g b] este cea din tabelul 2.
Simbol
[r g b]
y
[1 1 0]
m
[1 0 1]
c
[0 1 1]
r
[1 0 0]
g
[0 1 0]
b
[0 0 1]
w
[1 1 1]
k
[0 0 0]
Tab.2 Corespondena dintre simbolurile culorilor de baz i vectorii [r g b]
Reprezentarea grafic a mai multor poligoane, printr-un singur apel al funciei fill, se face
cu una din sintaxele:
fill(x1,y1,'c1',x2,y2,'c2',...)
fill(x1,y1,c1,x2,y2,c2, ...)
h = fill(...)
1)
fplot('fun', limite)
reprezint grafic funcia fun ntre limitele specificate de argumentul limite. Vectorul limite poate
fi de forma [xmin xmax] dac se impun doar limitele abscisei sau de forma [xmin xmax ymin
ymax] dac se impun i limitele ordonatei.
Exemplu: fplot('cos(x)', [0 2*pi 0 1])
reprezint grafic funcia cos(x) pentru x [0, 2], afind doar poriunea din grafic pentru care
cos(x) [0, 1].
2)
fplot('fun', limite, tol ), unde tol <1
permite, fa de prima sintax, specificarea toleranei relative acceptate la reprezentare. Implicit,
aceasta este 2e-3, adic 0,2%. Tolerana determin numrul maxim de pai utilizai la plotare
pentru axa x (numrul de puncte prin care se traseaz funcia) cu relaia [(1/tol)+0,5] + 1 , n care
[ ] semnific operatorul parte ntreag. Numrul implicit de pai este astfel 501.
3)
fplot('fun', limite, N ), unde N 1
permite, specificarea numrului de intervale n care este mprit domeniul absciselor. Astfel,
numrul de puncte utilizate la trasare va fi (N + 1). Pasul maxim va fi astfel (1/N)*(xmax xmin).
n scopul realizrii unei reprezentri grafice corecte, n zonele n care derivata i schimb rapid
valoarea, este utilizat n mod implicit un pas mult mai mic (pas adaptiv), indiferent de valoarea
specificat n argumentul N 1.
4) fplot('fun', limite, 'culoare_linie_marcator')
permite, n plus fa de sintaxa 1), specificarea culorii de reprezentare i/sau a tipului de linie
i/sau marcator, printr-un ir de maxim 3 caractere, ca la apelul funciei plot.
Exemplu: fplot('cos(x)', [0 2*pi], 'r:o')
5)
fplot('fun', limite, )
accept combinaii ale argumentelor tol, N, 'culoare_linie_marcator' n orice ordine.
6)
[X, Y] = fplot('fun', limite )
nu afieaz nici o reprezentare grafic, dar are ca efect crearea variabilelor X i Y care conin
valorile absciselor, respectiv ordonatelor funciei Y = fun(X). Reprezentarea grafic se poate face
ulterior cu funcia plot.
Utiliznd funcia fplot pot fi realizate i reprezentri grafice multiple pentru acelai
domeniu al absciselor. Pentru aceasta, exist dou posibiliti.
- Se specific pentru primul argument un ir de caractere ce conine funciile de reprezentat
simultan, care s poat fi evaluat cu funcia eval.
Exemplu: fplot('[cos(x) sin(x)]',[0 2*pi]) va reprezenta simultan funciile sin(x) i cos(x)
pentru x[0, 2].
- Se creeaz o funcie utilizator (un M - file) avnd ca parametru de ieire o matrice,
urmrindu-se ca fiecare coloan a acesteia s reprezinte valorile cte unei funcii de
reprezentat. La apelul funciei fplot, ca prim argument, se specific numele funciei (care
este i numele fiierului .m)
- Exemplu:
function y=f(x)
y(:,1) = sin(x(:));
y(:,2) = cos(x(:));
iar apoi, fplot('f' ,[0 2*pi])
comet(x,y)
- realizeaz reprezentarea dinamic a vectorului y n funcie de vectorul x.
comet(x,y,p) - face aceeai reprezentare ca sintaxa anterioar, dar permite specificarea
lungimii corpului cometei ca fiind plength(y). Valoarea implicit a lui p
este 0.1.
Remarci:
1) Nu se pot obine reprezentri grafice dinamice multiple (dac unul din primele dou
argumente este o matrice, nu se obine o reprezentare grafic multipl ca i cu funcia plot).
2) Reprezentarea grafic realizat, cu excepia cometei, nu pot fi tiprite (sunt invizibile) i nu
vor fi afiate dac sunt copiate n alt parte. De asemenea, aceasta va disprea la
redimensionarea figurii sau la ncercarea de afiare a detaliilor cu comanda zoom.
explicit, cu comanda axes, care permite afiarea unui sistem de axe ntr-o poziie
specificat i avnd dimensiuni specificate; sintaxa comenzii este:
axes('Position',[xinitial yinitial lungimex lungimey])
figur).
h = axes(...)
axes(h)
12
pentru abscis,
set(gca,'xtick',2:10)
set(gca,'ytick',[2 2.1 2.2 2.4 2.5])
'ticklength'
care specific lungimea liniuei de gradare prin raportul dintre lungimea ei i lungimea axei celei
mai lungi. Primul element al vectorului se refer la reprezentrile 2D, iar al doilea la cele 3D.
Vectorul implicit este [0.01 0.025].
-
'tickdir'
'in' /'out'
care precizeaz orientarea liniuelor de gradare spre interior ('in') sau spre exterior ('out').
-
'xMinortick'
'yMinortick'
'on' /'off'
'on' /'off'
care activeaz sau nu afiarea liniuelor de gradare secundare (ntre cele principale). Acestea sunt
distanate automat, n funcie de spaiul dintre liniuele de gradare principale.
c) axis('normal')
13
rescaleaz reprezentarea grafic curent astfel nct aceasta s fie cuprins integral n
dreptunghiul utilizat la reprezentare, anulnd efectele sintaxelor axis('square') i
axis('equal').
d) axis('off')
14
8. Vizualizarea detaliilor
Pentru a vizualiza poriuni ale reprezentrii grafice curente se folosete comanda zoom.
Dup primul apel al acesteia sau folosind sintaxa zoom on, se pot realiza efectele:
- folosind butonul stng al mouse ului este permis specificarea zonei grafice ce va fi
detaliat;
- la fiecare apsare a butonului stng al mouse ului limitele axelor vor fi schimbate cu un
factor de 2, permind evidenierea detaliilor;
- printr-o dubl apsare a butonului stng al mouse ului, se revine la limitele iniiale.
Dup al doilea apel al acesteia sau folosind sintaxa zoom off se renun la aceste efecte.
Cu sintaxa zoom out, se revine la afiarea reprezentrii grafice iniiale.
15
afieaz irul de caractere 'text' ncepnd cu poziia dat de coordonatele (x,y) exprimate n
unitile de msur ale ultimului grafic.
2) text(x,y,'text','NumeProprietate',ValoareProprietate....)
permite, n plus fa de sintaxa precedent, utilizarea unor valori specificate pentru anumite
proprieti ale obiectului text, nc de la crearea acestuia.
n tabelul 3 sunt prezentate cteva din proprietile obiectelor grafice de tip text i
valorile posibile ale acestora.
Se precizeaz cteva aspecte.
- n mod implicit, coordonatele prin care se specific locaia textului sunt exprimate n
unitatea de msur a datelor din sistemul de axe i sunt raportate la originea acestuia.
- Proprietile VerticalAlignment i HorizontalAlignment controleaz poziia textului
fa de punctul precizat ca locaie a acestuia. Figurile 1 i 2 ilustreaz opiunile fiecrei
proprieti i corespondena acestora cu plasarea textului.
16
Fig. 1
Efectele valorilor proprietii
HorizontalAlignment n cazul n care
VerticalAlignment este setat la valoarea
Middle (valoarea implicit)
Fig. 2
Efectele valorilor proprietii
VerticalAlignment
n cazul n care
HorizontalAlignment
este
setat
la
valoarea Left (valoarea implicit)
Descrierea proprietii
Valoarea proprietii
Numele proprietii
Poziia i dimensiunea obiectului
grafic text (dreptunghiului care
ncadreaz textul).
HorizontalAlignment
Position
Rotation
Units
Valori: pixels,
normalized, inches,
centimeters,
points,
data
Implicit: data
(unitatea
de
msur
Extent
VerticalAlignment
FontAngle
nclinarea caracterelor
FonfName
Familia de fonturi
FontSize
Dimensiunea fontului
FontUnits
FontWeight
Grosimea caracterelor
Color
Culoarea textului
17
unitatea de
FontUnits
Exist i posibilitatea de a crea, printr-un singur apel al funciei text, mai multe obiecte de
tip text. Astfel:
o
Pentru a afia acelai text n mai multe locaii din sistemul de axe, argumentele x
i y sunt vectori ce conin coordonatele punctelor de referin pentru plasarea
textului;
o
Pentru a afia texte diferite n locaiile determinate de perechile abscis-ordonat,
x i y vor fi vectori de aceeai dimensiune, iar pentru argumentul al treilea exist
variantele:
matrice de tip char array avnd numrul de linii egal cu dimensiunea
vectorilor x i y, fiecare linie coninnd textul
dorit pentru locaia
corespunztoare;
Exemplu:
text([0.1,0.2,0.3],[0.1,0.2,0.3],
[text1 ;text2 ;text3])
3) h = text(...)
returneaz, n vectorul coloan h, identificatorii obiectelor text ce vor fi create prin aceast
comand. Indiferent de forma de apel a funciei (argumentele specificate), aceasta accept
reinerea identificatorilor ntr-o variabil.
Utilizarea comenzii gtext
Pentru o plasare interactiv a textului, cu ajutorul mouse-ului, se poate folosi comanda
gtext('text')
Aceasta afieaz irul de caractere 'text' n cmpul grafic, ateapt deplasarea acestuia
pe grafic cu ajutorul mouse ului, plasarea realizndu-se la apsarea oricrui buton al mouse
ului sau a unei taste.
10.2. Etichetarea axelor
Precizarea i afiarea semnificaiei mrimilor reprezentate pe fiecare ax se face cu
funciile:
n
xlabel('text')
ylabel('text')
care text este irul de caractere
care va fi afiat.
Deoarece textul afiat cu aceste comenzi constituie pentru sistemul grafic MATLAB un
obiect grafic de tip text, prin modificarea proprietilor acestui obiect pot fi stabilite
caracteristicile textului (tab.1).
Valorile proprietilor pot fi specificate nc de la crearea obiectului text.
Exemplu:
xlabel('x','fontname','TimesNewRoman','fontsize',12,'color',[1 0.4 0.6])
18
Pentru a specifica textul care s fie utilizat alturi de fiecare linie de gradare a axelor, se
modific valorile proprietilor 'xticklabel', respectiv 'yticklabel', ale obiectului axe.
Valoarea acceptat pentru o astfel de proprietate este un vector de tip cell array sau o matrice de
tip char array, componentele acestora coninnd irurile de caractere ce se doresc a fi folosite
pentru etichetare.
Exemple: Oricare din sintaxele
set(gca, 'xticklabel', {'d1', 'd2'})
set(gca, 'xticklabel', ['d1'; 'd2'])
va nlocui etichetele numerice generate de MATLAB n mod implicit, cu etichetele d1 i d2 care vor fi afiate
succesiv sub liniile de gradare ale axei x.
Dac dimensiunea vectorului sau matricii specificate este mai mic dect numrul de
gradaii al axei, textele vor fi repetate ciclic.
10.3 Afiarea titlului reprezentrii grafice
Pentru fiecare sistem de axe se poate specifica un titlu, care va fi afiat deasupra spaiului
delimitat de sistemul de axe i centrat pe orizontal. Acesta va fi plasat cu funcia title care poate
avea oricare din sintaxele de mai jos.
1)
2)
title('text')
n care 'text' este irul de caractere ce va fi afiat.
title('text','NumeProprietate',ValoareProprietate....)
specific, la creare, valorile unor proprieti ale obiectului grafic de tip text pe care
comanda l creeaz.
3)
h = title(...) furnizeaz, n variabila h, identificatorul obiectul
text creat.
Obs.
Pentru c una din proprietile sistemului de axe are este 'title', un titlu poate fi asociat sistemului de
axe prin precizarea valorii acestei proprieti.
Exemple de sintaxe valide:
set(gca,title, text(x,y,TITLUL DORIT))
set(gca,xlabel, h)
Simbolul
Secvena de caractere
TEX
Simbolul
Secvena de caractere
TEX
\alpha
\upsilon
\sim
\beta
\phi
\leq
\gamma
\chi
\infty
\delta
\psi
\clubsuit
\epsilon
\omega
\diamondsuit
19
Simbolul
~
\zeta
\Gamma
\heartsuit
\eta
\Delta
\spadesuit
\theta
\Theta
\leftrightarrow
\vartheta
\Lambda
\leftarrow
\iota
\Xi
\uparrow
\kappa
\Pi
\rightarrow
\lambda
\Sigma
\downarrow
\Upsilon
\circ
\nu
\Phi
\pm
\xi
\Psi
\geq
\pi
\Omega
\propto
\rho
\forall
\partial
\sigma
\exists
\bullet
\varsigma
\ni
\div
\tau
\cong
\neq
\equiv
\approx
\aleph
\Im
\Re
\wp
\otimes
\oplus
\oslash
\cap
\cup
\supseteq
\supset
\subseteq
\subset
\int
\in
\o
\rfloor
\lceil
\nabla
\lfloor
\cdot
\ldots
...
\perp
\neg
\prime
'
\wedge
\times
\0
\rceil
\surd
\mid
\vee
\varpi
\copyright
\langle
\rangle
\mu
De asemenea, exist secvene TEX prin care se pot controla caracteristicile fontului
utilizat:
Efectul acestor caracteristici rmne numai pn la sfritul irului de caractere sau numai n
interiorul contextului definit de acolade{ }.
Pentru a utiliza indici i exponeni, se folosesc caracterele " _" , respectiv " ^ ",
modificarea afectnd textul cuprins ntre acoladele imediat urmtoare.
Exemplu de utilizare a caracterelor TEX:
Asociind unui ir de caractere secvena
'\bullet\leftarrow\fontname{times}0.25{\ite}^{-0.005{\itt}} '
textul afiat va fi
1)
3)
insereaz o legend care va avea liniile matricei ir de caractere drept etichete. Se obine
acelai efect ca la sintaxa
legend(matrice_caractere(1,:), matrice_caractere(2,:),...).
legend(h, matrice_caractere)
asociaz fiecare linie a matricei matrice_caractere cu obiectul grafic corespunztor
4)
din
vectorul h al identificatorilor.
5)
legend(h_axe,...)
legend('off'),
legend(h_axe,'off')
terg legenda din sistemul de axe curent, respectiv din sistemul de axe specificat prin
h_axe
h_legenda = legend
7)
legend(...,pos)
9)
pos = 4
plaseaz legenda n colul din dreapta jos al sistemului de axe.
[h_legenda,h_object] = legend(...)
furnizeaz identificatorul legendei (h_legenda) i identificatorii obiectelor grafice (de tip
line, text .a.) folosite n legend (h_object). Aceti identificatori permit modificarea
bar(y)
Este sintaxa cea mai simpl (un singur argument), dar cea mai rar folosit pentru c nu
poate fi controlat valoarea datelor reprezentate pe abscis, argumentul funciei coninnd
doar datele reprezentate pe ordonat.
Dac y este un vector, se va trasa o bar pentru fiecare component, avnd nlimea
valorii componentei i abscisa egal cu indexul (numrul de ordine al acesteia). Limea
barelor este de 0,8 uniti de reprezentare.
Exemplu:
secvena
a=[2 5 9 12];
bar(a) ; grid on;
are ca efect afiarea reprezentrii
15
10
22
2 10 3
5 8 6
a=
9 6 9
4 12
12
iar apelul
bar(a) ; grid on;
are ca efect afiarea, cu culori diferite, a trei grafice cu bare, cte unul
pentru fiecare coloan
15
10
bar(x,y)
Este cea mai folosit sintax, pentru c permite precizarea datelor reprezentate att pe
ordonat, ct i pe abscis.
- Dac x i y sunt vectori de aceeai dimensiune, elementele lui x trebuie s fie n ordine
cresctoare, sintaxa avnd ca efect afiarea unei bare pentru fiecare element al lui y n
poziia specificat de elementul cu aceeai poziie din x.
Exemplu:
secvena
x=[2 5 9 12];y=[10 20 5 2];
bar(x,y); grid on;
are ca efect afiarea reprezentrii
20
15
10
5
0
12
23
12
bar(..., latime)
Funcia bar accept ca argument final un numr prin care se specific limea tuturor
barelor i se controleaz separarea acestora n interiorul unui grup. Limea implicit este
0.8, iar dac nu se specific argumentul x, barele dintr-un grup au un separator ngust.
Dac se specific valoarea 1, barele grupului vor fi lipite, iar pentru un numr
supraunitar, barele se vor suprapune.
bar(..., culoare)
Argumentul culoare
bar(..., stil)
Prin argumentul stil (un ir de caractere), este permis specificarea stilului de bare
folosit atunci cnd se reprezint mai multe grafice cu bare n acelai sistem de axe. Exist
dou stiluri posibile de bare:
'group' sau 'grouped' - este stilul implicit, care afieaz barele corespunztoare
aceleiai abscise grupate n jurul acesteia. Fiecrei linii a matricei y i corespunde o
abscis i deci un grup care conine un numr de bare egal cu numrul de coloane ale
matricei.
'stack' sau 'stacked'- afieaz barele din grup suprapuse, obinnd astfel doar o bar
pentru fiecare linie din y. nlimea barei este suma elementelor liniei. Fiecare bar este
multicolorat cu culorile corespunztoare elementelor i arat ponderea fiecrui element
al liniei n sum.
Exemplu:
secvena
x=[2 5 9 12];y=[10 20 5 2;1 2 3 4;2 4 6 8]';
bar(x,y ,0.2,'stack'); grid on
are ca efect afiarea reprezentrii
30
20
10
12
[xb,yb] = bar(... )
nu reprezint graficele, dar calculeaz vectorii xb i yb astfel nct graficul cu bare s fie
trasat ulterior cu funcia plot(xb,yb). Aceast sintax este util atunci cnd se dorete un
control mai mare asupra graficului, spre exemplu includerea reprezentrii cu bare ntr-o
reprezentare grafic mai complex sau combinarea mai multor grafice cu bare.
h = bar(... )
nregistreaz, n variabila h (de tip scalar sau vector dac sunt mai multe grafice de tip bar),
identificatorii obiectelor de tip patch create la apelul comenzii.
11.2. Reprezentarea grafic cu bare orizontale
Reprezentarea grafic cu bare orizontale nu este posibil dect ncepnd cu versiunea
MATLAB 5.0. n acest scop, se apeleaz funcia barh, sintaxele fiind aceleai cu cele ale
funciei bar.
Exemplu: Secvena
y=[2 4 6;9 7 5];
barh(y,'stack'); grid on;
24
plot(x,y2,'k','LineWidth',3)
set(h2,'YAxisLocation','right','Color','none','XTickLabel',[])
80
800
60
600
40
400
20
200
y2
1000
y1
100
6
x
25
10
10
1.5
2.5
3.5
stem(x,y)
y=[2 5 9 12];
h=stem(y); grid on;
set(h(1),'color','b','marker','p','markersize',16,'linewidth',1,'markerfacecolor','c')
set(h(2),'color','k','linewidth',3)
1.5
2.5
3.5
26
1.5
2.5
3.5
stairs(x,y) - reprezint grafic, n trepte, dependena y = y(x). Dac x este un vector linie
cu n componente, iar y o matrice de dimensiune n x m, vor fi reprezentate m grafice
suprapuse, cte unul pentru fiecare coloan. Vor fi folosite culorile predefinite, n mod
ciclic. Este permis specificarea, printr-un argument suplimentar (ca la funcia plot), a
culorii i liniei de reprezentare.
stairs(x,y,stil_linie )
Observaie: datele coninute n vectorul x al absciselor trebuie s fie n ordine cresctoare i
echidistante.
Sintaxele
[xs,ys] = stairs(y)
[xs,ys] = stairs(x,y)
h = stairs(. . .)
reine, n variabila h, identificatorul/identificatorii obiectelor
grafice de tip line create.
De reinut! Apelul funciei stairs determin crearea unuia sau mai multor obiecte de tip
line care pot fi modificate ulterior cu editorul de plot sau prin proprietile acestora, cu
funcia set.
Exemplu:
secvena
x=0.5:0.5:2.5;y=[10:5:30;20:10:60]';
h=stairs(x,y);
set(h(1),'color','k','marker','p','markersize',12,'linewidth',1.5,'markerfacecolor','c')
set(h(2),'color','b','marker','o','markersize',10,'linewidth',2)
grid on;
1.5
27
2.5
[x,y] = ginput(n)
[x,y] = ginput
[x,y,b] = ginput(...)
dimensiune,
afieaz, n spaiul tridimensional, o curb obinut prin interpolarea liniar a punctelor ale cror
coordonate sunt elementele vectorilor X1, Y1 i Z1. Ca i n cazul funciei plot, sunt acceptate
mai multe seturi de date, deci mai multe triplete de argumente.
Dac X1, Y1, Z1 sunt matrice de aceeai dimensiune, MATLAB reprezint cte o curb
pentru fiecare coloan a matricelor, folosind ciclic culorile de baz.
Argumentul opional Specificare_Atribute (un ir de maxim trei caractere) permite
specificarea stilului de linie, de marcator i culoarea liniilor plotate (ca la funcia plot).
Prin perechi de argumente de tipul 'Nume_Proprietate', Valoare_Proprietate, se pot
stabili, nc de la creare, oricte valori ale proprietilor obiectelor grafice de tip Line create prin
acest apel de funcie.
28
n cazul cel mai general, cnd funciile au patru argumente, sunt create suprafee
parametrizate specificate prin matricele X, Y i Z, cu culorile specificate prin matricea C.
MATLAB realizeaz o transformare linear asupra datelor din C pentru a obine culorile din
paleta de culori curent. Dac X, Y i Z sunt matrice, C trebuie s aib aceeai dimensiune ca i
acestea.
Sintaxa mesh(X,Y,Z), n care matricea C este omis, consider C=Z, culoarea fiind
proporional cu nlimea suprafeei.
Dac X i Y sunt vectori de dimensiune n, respectiv m, iar Z este o matrice de
dimensiune m x n, punctele de coordonate (X(j), Y(i), Z(i,j)) sunt interseciile liniilor de grid
care compun reeaua mesh. Se constat c indexul lui Y corespunde coloanelor lui Z, n timp
ce indexul lui X corespunde liniilor lui Z.
Dac X i Y sunt matrice, interseciile liniilor reelei au coordonatele (X(i,j), Y(i,j),
Z(i,j)).
Cu sintaxa mesh(Z) se creeaz o reea mesh care utilizeaz X = 1:n i Y = 1:m, unde
[m,n]=size(Z), iar culoarea este proporional cu nlimea suprafeei.
Identificatorul obiectului grafic de tip surface creat de aceste funcii poate fi reinut ntr-o
variabil, dac se utilizeaz sintaxa h=mesh(...), respectiv h=meshc(...) sau h=meshz(...).
15.4. Reprezentarea suprafeelor pline
Pentru reprezentarea grafic a suprafeelor pline se folosesc funciile surf i sulfc.
Sintaxele acestora i semnificaia argumentelor sunt similare celor ale funciilor utilizate pentru
reprezentarea suprafeelor sub forma unei reele de linii. Spre deosebire de surf, funcia surfc
afieaz i liniile de nivel, pe acelai grafic i sub suprafa.
29
Apelat cu prima sintax, funcia reprezint grafic suprafaa unei sfere format din n x n
suprafee elementare. Nespecificarea argumentului n presupune utilizarea valorii implicite a
acestuia, n=20.
Cu ultima sintax, sunt create cele trei matrice X, Y i Z cu coordonatele sferei unitate,
fr a afia suprafaa sferei. Aceste coordonate vor fi utilizate ulterior ca argumente ale funciei
surf sau mesh pentru reprezentarea grafic a suprafeei sferei.
Generarea unui cilindru (sau forme geometrice derivate din acesta) cu nlimea egal cu
unitatea se realizeaz cu una din sintaxele de mai jos ale funciei cylinder.
[X,Y,Z] = cylinder
[X,Y,Z] = cylinder(r)
[X,Y,Z] = cylinder(r,n)
cylinder(...)
Pentru afiarea culorilor asociate suprafeelor, sistemul MATLAB folosete dou tehnici:
culori indexate, care asociaz fiecrui punct din datele ce definesc suprafaa un index
din paleta de culori a ferestrei figur;
truecolor, conform creia suprafeele sunt colorate prin specificarea explicit a culorilor,
spre exemplu prin triplete RGB.
Indiferent de metoda folosit, afiarea culorilor depinde de modul de colorare (shading)
folosit.
Referitor la culori, la crearea unei suprafee 3D exist trei posibiliti:
s nu fie specificate explicit culorile, caz n care MATLAB genereaz matricea de culori
asociate datelor folosind datele din matricea Z;
- specificarea unei matrice de culori, egal ca dimensiune cu matricea Z;
- specificarea unui triplet RGB pentru fiecare element din matricea de date Z, fapt ce
presupune utilizarea tehnicii truecolor.
Paleta de culori (colormap) este o matrice cu trei coloane, fiecare linie definind o
culoare printr-un vector RGB. Coninutul acesteia este controlat prin funcia colormap (vezi
lucrarea 8).
n sistemul grafic MATLAB exist mai multe modele predefinite de culori:
autumn, care folosete nuane bazate pe rou, portocaliu i galben;
bone, o palet cu nuane de albastru i gri;
colorcube, care determin afiarea mai multor suprafee mici cu culori din spaiul RGB;
cool const n nuane de culori care variaz lent de la albastru deschis spre mov;
copper afieaz nuane de culori de la negru spre armiu;
flag afieaz zone colorate cu rou, alb, albastru i negru;
gray folosete nuane de gri;
hot variaz lent de la negru la alb prin nuane de rou, portocaliu i galben;
hsv (hue-saturation-value) ncepe cu rou, trece prin galben, verde, albastru i mov,
revenindu-se la rou;
jet trece de la albastru la rou prin albastru deschis, galben i portocaliu;
lines creeaz o palet cu culorile specificate prin proprietatea ColorOrder i nuane de
gri;
pink conine nuane derivate din culoarea roz;
prism repet ase culori: rou, portocaliu, galben, verde, albastru i violet;
spring const n culori derivate din mov i galben;
summer const n culori derivate din verde i galben;
white nu folosete dect culoarea alb;
winter const n culori derivate din albastru i verde.
Pentru a crea o palet de culori bazat pe un anumit model i care s conin un numr impus
de culori, se folosete sintaxa
-
colormap(model(n))
31
Pentru afiarea paletei de culori curente n fereastra figur, ntr-un dreptunghi lng
sistemul de axe, se folosete funcia colorbar. Cu sintaxa colorbar('vert') se insereaz o
bar de culori vertical, iar cu sintaxa colorbar('horiz') se insereaz o bar de culori
orizontal.
15.8. Controlul modului de colorare
Stabilirea modului de colorare a obiectelor grafice de tip surface i patch se realizeaz prin
funcia shading, care are trei sintaxe posibile:
shading flat fiecare zon de culoare i segment al reelei de linii este umplut cu o
culoare constant determinat de punctul final al segmentului sau colului zonei care are cel mai
mic index sau indici;
shading faceted corespunde modului shading flat, afindu-se i liniile din reea colorate
cu negru; este modul de colorare implicit;
shading interp stabilete culoarea de reprezentare a fiecrui segment i zon elementar
a suprafeei ca o nuan rezultat din interpolarea liniar a culorilor capetelor liniei sau colurilor
suprafeei.
32