Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Tehnici de plotare - Plotari 2D elementare - Generarea graficelor

Matlab



+ Font mai mare | - Font mai mic



Tehnici de plotare

In general, pentru a realiza o reprezentare grafica, trebuie parcurse etapele urmatoare:



Etapa

Instructiuni

 1.Pregatirea datelor

x = 0:0.2:12;

y1 = bessel(1,x);

y2 = bessel(2,x);

y3 = bessel(3,x);

 2. Selectarea ferestrei grafice si pozitonarea graficului in fereastra

figure(1)
subplot(2,2,1)

3. Apelarea unei

functii elementare de plotare

h = plot(x,y1,x,y2,x,y3);

 4. Selectarea

caracteristicilor liniei si markerului.

set(h,'LineWidth',2,,)
set(h,,)

 5. Setarea limitelor axelor, gridare (caroiere)

axis([0 12 -0.5 1])

grid on

 6. Completarea graficului cu etichete pe axe, legenda, text

xlabel('Time')
ylabel('Amplitude')
legend(h,'First','Second','Third')
title('Bessel Functions')

[y,ix] = min(y1);

text(x(ix),y,'First Min rightarrow',
           'HorizontalAlignment','right')

 7. Export grafice

print -depsc -tiff -r200 myplot

Functiile de baza folosite la plotare sunt prezentate in tabelul urmator:

Functie

Utilizare

Plot

Genereaza grafice 2-D cu scalare liniara a axelor

Plot3

Genereaza grafice 3-D cu scalare liniara a axelor

loglog

Genereaza grafice cu scalare logaritmica a axelor

semilogx

Genereaza grafice cu scalare liniara a axei y si cu scalare logaritmica a axei x

semilogy

Genereaza grafice cu scalare liniara a axei x si cu scalare logaritmica a axei y

plotyy

Genereaza grafice cu dubla reprezentare a axei y (pe stanga si pe dreapta)

1. Plotari 2 D elementare

Generarea graficelor

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)

Specificarea stilului de linie

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.

Specificarea culorii si dimensiunii liniilor

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)

Suprapunerea unor grafice peste un grafic existent

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

Plotarea simultana a markerelor si liniilor

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') 

Plotarea datelor din matrici

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.

Plotarea cu axa Y dubla

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')

Setarea parametrilor axelor

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.

Se pot parcurge in detaliu aceste comenzi prin apelarea la help.

Ferestre de tip figura

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.

Afisarea unor grafice multiple in aceeasi fereastra grafica

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])

Comenzi de marcare, etichetare si gradare a graficelor

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

title

Adauga un titlu

xlabel

Adauga o eticheta pe axa x

ylabel

Adauga o eticheta pe axa y

zlabel

Adauga o eticheta pe axa z

legend

Adauga o legenda

Text

Afiseaza un text la o locatie specificata

Gtext

Plaseaza textul pe grafic utilizand mouse-ul


Etichetarea axelor

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 TeX. Aceste comenzi permit reprezentarea unor simboluri cum ar fi literele grecesti sau sagetile.

Adaugarea textelor

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)

Plasarea textului in mod interactiv

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.

Grafice de tip Bar si Area

Functie

Descriere

Bar

Afiseaza coloanele unor matrici mxn ca m grupe de n bare verticale

Barh

Afiseaza coloanele unor matrici mxn ca m grupe de n bare orizontale

bar3

Afiseaza coloanele unor matrici mxn ca m grupe de n bare verticale 3-D

bar3h

Afiseaza coloanele unor matrici mxn ca m grupe de n bare orizontale tridimensionale 3-D

Area

Afiseaza datele din vectori ca suprafete

Grafice Bar grupate

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)

Grafice Bar 3-D separate

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).

Grafice Bar 3-D grupate

Pentru a realiza un grafic de bare grupate 3 D se specifica argumentul 'group':

bar3(Y,'group')

Grafice statistice - pie charts

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

Crearea de grafice tip contur

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')

Animatie

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.

Filme

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.

Stergere si redesenare

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 8594
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved