CATEGORII DOCUMENTE |
DOCUMENTE SIMILARE |
|||
|
|||
Tehnici de plotare
In general, pentru a realiza o reprezentare grafica, trebuie parcurse etapele urmatoare:
Etapa
|
Instructiuni |
1.Pregatirea datelor |
|
2. Selectarea ferestrei grafice si pozitonarea graficului in fereastra |
|
3. Apelarea unei functii elementare de plotare |
|
4. Selectarea caracteristicilor liniei si markerului. |
|
5. Setarea limitelor axelor, gridare (caroiere) |
|
6. Completarea graficului cu etichete pe axe, legenda, text |
|
7. Export grafice |
|
Functiile de baza folosite la plotare sunt prezentate in tabelul urmator:
Functie |
Utilizare |
|
Genereaza grafice 2-D cu scalare liniara a axelor |
|
Genereaza grafice 3-D cu scalare liniara a axelor |
|
Genereaza grafice cu scalare logaritmica a axelor |
|
Genereaza grafice cu scalare liniara a axei y si cu scalare logaritmica a axei x |
|
Genereaza grafice cu scalare liniara a axei x si cu scalare logaritmica a axei y |
|
Genereaza grafice cu dubla reprezentare a axei y (pe stanga si pe dreapta) |
1. Plotari 2 D elementare
Functia plot
are diferite forme in
functie de argumentele de intrare.
Daca de exemplu y
este un vector, plot(y)
produce un grafic liniar al
elementelor lui y
versus indexul elementelor sale.
Daca se specifica doi vectori ca
argumente, plot(x,y)
produce graficul lui y
versus x
.
Exemplu: t = 0:pi/100:2*pi;
y = sin(t);
plot(t,y)
grid on
Se pot realiza grafice multiple utilizand un singur apel al functiei plot.
MATLAB-ul
realizeaza automat o reprezentare cu culori diferite pentru a permite
distingerea graficelor. Exemplu:
y2 = sin(t-0.25);
y3 = sin(t-0.5);
plot(t,y,t,y2,t,y3)
Se pot crea diferite tipuri de linii pentru fiecare
set de date prin folosirea unor identificatori de tip string in functia plot
. Exemplu:
t = 0:pi/100:2*pi;
y = sin(t);
y2 = sin(t-0.25);
y3 = sin(t-0.5);
plot(
t,y,'
-',t,y2,'--',t,y3,':')
Functiile de plotare accepta deci argumente de tip caracter care specifica stilul liniei, simbolurile utilizate pentru marker, culoarea etc. Forma generala este:
plot(x,y,'linestyle_marker_color')
unde linestyle_marker_color este un sir de caractere construit din:
Un stil de linie (de exemplu linie punctata, plina etc.)
Un tip de marker (de exemplu x
,
*
, o
, etc.)
Un specificator de culoare (c
, m
, y
, k
, r
, g
, b
, w
)
Se poate folosi un specificator sau mai multi, in orice ordine. De exemplu,
'go--'
defineste o linie intrerupta, cu markere circulare, ambele colorate in verde.
Caracteristicile liniilor se pot controla prin specificarea unor valori pentru proprietatile linilor:
LineWidth
- specifica
latimea unei linii.
MarkerEdgeColor
- seteaza culoarea
markerului sau culoarea marginilor markerului in cazul anumitor forme (cerc,
patrat etc.)
MarkerFaceColor
- seteaza culoarea
interiorului markerelor.
MarkerSize
- specifica
dimensiunea markerului.
Exemplu:
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--rs','LineWidth',2,
'MarkerEdgeColor','k',
'MarkerFaceColor','g',
'MarkerSize',10)
Se pot adauga grafice peste unul existent cu
comanda hold
. Daca
se seteaza hold
on
, MATLAB-ul nu
inlatura graficul existent, ci suprapune noul grafic in aceeasi fereastra
grafica.
Exemplu:
semilogx(1:100,'+')
hold on
plot(1:3:300,1:100,'--')
hold off
Pentru plotarea markerelor (care indica punctele corespunzatoare datelor) si a liniilor (care unesc aceste date) se specifica atat tipul markerului cat si stilul liniei. Exemplu:
x = 0:pi/15:4*pi;
y = exp(2*cos(x));
plot(
x,y,'
-r',x,y,'ok')
Atunci cand functia plot
este
utilizata cu un singur argument de tip matrice:
plot(Y)
va
fi realizat un grafic pentru fiecare coloana a matricii, cu axa x reprezentand indexul de linie 1:m
, cu m
numarul liniilor din Y
.
Exemplu: cu instructiunea Z
= peaks; este creata
o matrice 49x49
obtinuta printr-o evaluare de functie. Daca plotam
matricea cu plot(
Z)vom avea un grafic cu 49
de linii
.
Comanda plotyy
permite crearea unor grafice pentru doua
seturi de date si cu reprezentare dubla a
axei Y, pe partea stanga si pe partea dreapta.
Exemplu:
t = 0:pi/20:2*pi;
y = exp(sin(t));
plotyy(t,y,t,y,'plot','stem')
MATLAB-ul seteaza automat limitele axelor si gradarea acestora. Se pot insa folosi si setarile utilizatorului, cu comenzile:
axis
- seteaza axele pentru fereastra
grafica curenta.
axes
- creeaza axe noi cu caracteristici
specificate.
get
si set
- permit obtinerea si setarea unor
proprietati ale axelor.
gca
- returneaza identificatorul axelor
curente.
MATLAB-ul directioneaza iesirile grafice spre o fereastra distincta de fereastra de comanda. Aceasta fereastra grafica este denumita figura (figure). (a se vedea paragraful 3.3).
Functia figure genereaza ferestre grafice. De exemplu,
figure
genereaza o noua fereastra si o face fereastra curenta.
Se poate realiza o
afisare a mai multor grafice in aceeasi fereastra prin
intermediul functiei subplot
.
Functia subplot(m,n,i)
desparte fereastra de tip
figura intr-o matrice m x n de mici subploturi (subgrafice) si
selecteaza subplotul i
ca grafic curent. Exemplu:
t = 0:pi/20:2*pi;
[x,y] = meshgrid(t);
subplot(2,2,1)
plot(sin(t),cos(t))
axis equal
subplot(2,2,2)
z = sin(x)+cos(y);
plot(t,z)
axis([0 2*pi -2 2])
subplot(2,2,3)
z = sin(x).*cos(y);
plot(t,z)
axis([0 2*pi -1 1])
subplot(2,2,4)
z = (sin(x).^2)-(cos(y).^2);
plot(t,z)
axis([0 2*pi -1 1])
MATLAB-ul furnizeaza comenzi de etichetare a fiecarei axe si de plasare a unui text in orice loc din grafic. Comenzile sunt prezentate in tabelul urmator.
Comanda
|
Descriere |
|
Adauga un titlu |
|
Adauga o eticheta pe axa x |
|
Adauga o eticheta pe axa y |
|
Adauga o eticheta pe axa z |
|
Adauga o legenda |
|
Afiseaza un text la o locatie specificata |
|
Plaseaza textul pe grafic utilizand mouse-ul |
Se pot adauga etichete
pe axe cu comenzile xlabel
, ylabel
, zlabel
.
Exemplu:
xlabel('t = 0 to 2pi','FontSize',16)
ylabel('sin(t)','FontSize',16)
title('it','FontSize',16)
MATLAB-ul interpreteaza caracterele care
urmeaza dupa backslash '' ca si comenzi
Prin utilizarea functiei text
se poate plasa un text (sir de caractere) oriunde pe grafic. Exemplu:
text(
3*pi/4,sin(3*pi/4),
'leftarrowsin(t) = .707',
'FontSize',16)
text(pi,sin(pi),'leftarrowsin(t) = 0',
'FontSize',16)
text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow',
'HorizontalAlignment','right',
'FontSize',16)
Daca utilizam functia gtext se poate plasa un text in mod interactiv, cu mouse-ul, oriunde pe grafic. Aceasta functie accepta ca argument un sir de caractere si asteapta pana cand utilizatorul selecteaza un loc pe grafic cu ajutorul mouse-ului.
Se poate utiliza si Plot Editor pentru plasarea textului (a se vedea paragraful 3.3).
2. Grafice 2 D specializate
MATLAB-ul permite lucrul cu o mare varietate de tipuri de grafice, astfel incat informatiile sa poata fi prezentate eficient.
Tipul de grafic selectat depinde in mod esential de natura datelor prelucrate.
Graficele de tip bare sau arie (bar, area) sunt utile pentru vizualizarea unor rezultate, compararea lor si afisarea unei contributii individuale din total.
Graficele de tip statistic (pie charts) indica contributiile individuale dintr-un total.
Histogramele (histogram) sunt utile pentru a indica distributia valorilor datelor.
Graficele de tip stem si stairstep sunt utile pentru date discrete.
Graficele compass, feather, quiver sunt utile pentru plotarea vectorilor de tip directie si viteza.
Graficele de tip contur (contour) sunt utile la reprezentarea unor regiuni de valori egale ale datelor.
Plotarile interactive (interactive) permit selectarea unor puncte de plotare in mod interactiv.
Graficele de tip animatie (animations) adauga date la grafice consecutive si creeaza o animatie.
Functie
|
Descriere |
|
Afiseaza coloanele unor matrici mxn ca m grupe de n bare verticale |
|
Afiseaza coloanele unor matrici mxn ca m grupe de n bare orizontale |
|
Afiseaza coloanele unor matrici mxn ca m grupe de n bare verticale 3-D |
|
Afiseaza coloanele unor matrici mxn ca m grupe de n bare orizontale tridimensionale 3-D |
|
Afiseaza datele din vectori ca suprafete |
Ca setare implicita, un
grafic cu bare reprezinta fiecare element dintr-o matrice cu o
singura bara. In cazul unui grafic 2-D, barele create cu functia
bar
sunt distribuite de-a
lungul axei x, cu fiecare element dintr-o coloana desenat la alta locatie. Toate elementele
dintr-o linie sunt reprezentate grupat la aceeasi locatie pe axa x.
Exemplu:
Y = [5 2 1
8 7 3
9 8 6
5 5 5
4 3 2];
bar(Y)
Functia bar3
, in cea mai simpla forma,
traseaza fiecare element ca un bloc separat de tip 3-D, cu elementele
fiecarei coloane distribuite de-a lungul axei y. Barele care
reprezinta elementele din prima coloana a unei matrice sunt centrate
la 1 pe axa x s.a.m.d. Barele care reprezinta elementele din
ultima coloana sunt centrate la valoarea size(Y,2)
de pe axa x.
Exemplu: bar3(Y).
Pentru a realiza un grafic de bare grupate 3 D se
specifica argumentul 'group':
bar3(Y,'group')
Graficele pie afiseaza
procentul cu care fiecare element al unui vector sau matrice contribuie la suma
tuturor elementelor. Functiile pie
si pie3
creeaza grafice 2-D
si 3-D.
In continuare prezentam un exemplu de vizualizare a ponderii a trei produse din
totalul vanzarilor. Se considera o matrice X, pentru care fiecare
coloana reprezinta vanzarile anuale pentru cate un produs, pe o perioada de inregistrari de 5 ani:
X = [19.3 22.1 51.6;
34.2 70.3 82.4;
61.4 82.9 90.8;
50.5 54.9 59.1;
29.4 36.3 47.0];
Se pot calcula vanzarile pentru fiecare produs in cei 5 ani cu ajutorul functiei:
x = sum(X);
Daca utilizam argumentul de intrare explode
putem reprezenta intr-un
mod explodat care dintre produse a avut o
contributie mai mare la vanzari (de exemplu). Programul are
urmatoarea forma:
explode = zeros(size(x));
[c,offset] = max(x);
explode(offset) = 1;
h = pie(x,explode); colormap summer
Functiile contour
si contour3
afiseaza
contururi 2-D si 3-D. Functiile cer un
singur argument, si anume o matrice, ale carei date sunt interpretate
ca inaltimi fata de un plan.
Pentru a seta numarul de niveluri de contur (implicit se realizeaza automat pe baza valorilor minime si maxime) se foloseste un argument suplimentar optional. De exemplu,
[X,Y,Z] = peaks;
contour(X,Y,Z,20)
afiseaza 20 de contururi ale functiei peaks
intr-o vedere
bidimensionala.
Daca dorim o reprezentare 3 D putem folosi comenzile:
[X,Y,Z] = peaks;
contour3(X,Y,Z,20)
h = findobj(`Type','patch');
set(h,'LineWidth',2)
title('Twenty Contours of the peaks Function')
Se pot crea secvente animate in MATLAB pe doua cai:
Salvarea unui numar de imagini si rularea lor ca pe un film.
Stergerea continua si redesenarea unor obiecte pe ecran, facand schimbari in mod incremental la fiecare redesenare.
Se parcurg trei etape:
Se foloseste moviein
pentru initializarea
memoriei pentru o matrice suficient de mare.
Se utilizeaza getframe
pentru a genera fiecare
cadru de film, care este returnat ca un vector
coloana cu care se poate construi o matrice de tip film.
Se foloseste movie
pentru rularea "filmului"
de un numar specificat de ori cu o viteza
specificata.
Pot fi create diferite efecte prin selectarea unor moduri de stergere. Pentru crearea unei animatii sunt utile trei moduri de stergere:
none
- MATLAB nu sterge
obiectele.
background
- MATLAB sterge
obiectul si il redeseneaza in background. Acest mod sterge
obiectul si tot ce este sub el (linii de grid
etc.).
xor
- Acest mod sterge
doar obiectul si este cel mai folosit la animatie.
Pentru vizualizarea unor efecte de animatie si construirea unor exemple proprii este indicata utilizarea facilitatii demo a MATLAB-ului.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 8606
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved