360 likes | 481 Views
Obsah 5 . přednášky. Kreslení grafů graf bodů v rovině prostorová křivka plochy grafy diskrétních dat Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Grafy spojitých křivek. Funkce plot s jedním parametrem typu vektor reálných prvků
E N D
Obsah 5. přednášky Kreslení grafů graf bodů v rovině prostorová křivka plochy grafy diskrétních dat Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky.
Grafy spojitých křivek Funkce plot s jedním parametrem typu vektor reálných prvků Prvky vektoru a se chápou jako posloupnost y hodnot, na ose x bude pořadové číslo hodnoty od 1 (tzn. index prvku ve vektoru a). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(a) >>a=[1,6,3,4,2,1,8,0]; >>plot(a);
Grafy spojitých křivek Funkce plot s jedním parametrem typu vektor reálných prvků (2) Vhodné pro zobrazení (časových) řad, např.: vývoj zůstatku na účtu po měsících digitalizované analogové průběhy (zvukový soubor, veličiny v regulačních obvodech, elektrické signály, ...) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >>a=wavread('c:\\windows\\media\\ringin.wav'); >>plot(a); Funkce pro načtení hodnot ze souboru typu wav
Grafy spojitých křivek Funkce plot s jedním parametrem typu vektor reálných prvků (3) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >>a = linspace(0,2*pi); >>plot(sin(a)); Je-li funkce sin zavolána s parametrem typu vektor, výsledek je rovněž vektor (vektor sinů hodnot jednotlivých prvků vstupního vektoru). Zcela nevhodné použití - na ose x nejsou hodnoty argumentu funkce sin v rozsahu <0, 6.28>, ale pořadové číslo hodnoty (při neurčení počtu hodnot v linspace je počet hodnot 100).
Grafy spojitých křivek Funkce plot s jedním parametrem typu matice reálných prvků Sloupce matice a se chápou jako posloupnost y hodnot, na ose x bude pořadové číslo hodnoty od 1 (tzn. řádkový index prvku ve sloupci matice a). V grafu bude tolik křivek, kolik sloupců má matice a. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(a) >>a=[1,3,2 2,5,8 5,2,1 3,6,0] a = 1 3 2 2 5 8 5 2 1 3 6 0 >>plot(a);
Grafy spojitých křivek Funkce plot s jedním parametrem typu vektor komplexních prvků Reálná část prvků vektoru a se chápe jako posloupnost x souřadnic, imaginární část jako posloupnost y souřadnic. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(a) >>a=[1+2i,4-7i,5+8i,6-i]; >>plot(a); Při použití funkce plot s více než jedním parametrem jsou případné imaginární části hodnot ignorovány.
Grafy spojitých křivek Funkce plot s jedním parametrem typu vektor komplexních prvků (2) Stejného výsledku lze dosáhnout příkazem: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. POZNÁMKA plot(a) plot(real(a), imag(a)) >>a=[1+2i,4-7i,5+8i,6-i]; >>real(a) ans = 1 4 5 6 >>imag(a) ans = 2 -7 8 -1 >> plot(real(a), imag(a)) Vrací reálné části komplexních prvků pole. (Skalár je také pole.) Vrací imaginární části komplexních prvků pole. (Skalár je také pole.)
Grafy spojitých křivek Funkce plot s jedním parametrem typu matice komplexních prvků Reálná část prvků sloupců matice a se chápe jako posloupnost x souřadnic, imaginární část prvků sloupců jako posloupnost y souřadnic. V grafu bude tolik křivek, kolik sloupců má matice a. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(a) >>a=[1+3i,1+6i 2+i,2+8i 3+7i,3-2i 4+i,5] a = 1 + 3i 1 + 6i 2 + 1i 2 + 8i 3 + 7i 3 - 2i 4 + 1i 5 + 0i >>plot(a) Při použití funkce plot s více než jedním parametrem jsou případné imaginární části hodnot ignorovány.
Grafy spojitých křivek Funkce plot s jedním parametrem typu matice komplexních prvků (2) Obdobně jako u vektoru s komplexními prvky, lze stejného výsledku dosáhnout příkazem: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. POZNÁMKA plot(a) plot(real(a), imag(a)) >>a=[1+3i,1+6i;2+i,2+8i;3+7i,3-2i;4+i,5]; >>real(a) ans = 1 1 2 2 3 3 4 5 >>plot(real(a), imag(a))
Grafy spojitých křivek Funkce plot se dvěma parametry Jsou-li x i yvektory, vykreslují se prvky vektoru y oproti prvkům vektoru x. Pravděpodobně nejčastější způsob použití funkce plot. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(x,y) >>x = linspace(0,2*pi); >>plot(x,sin(x));
Grafy spojitých křivek Funkce plot se dvěma parametry (2) Je-li jeden (kterýkoliv) z parametrů matice a druhý vektor, vykresluje se vektor oproti řádkům nebo sloupcům matice (podle toho, který rozměr matice je roven počtu prvků vektoru). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(x,y) >>x = linspace(0,2*pi); >>y(1,:) = sin(x); >>y(2,:) = cos(x); >>plot(x,y); xje 100-prvkový vektory je matice 2 x 100 x a/nebo y lze transponovat, výsledný graf bude vždy stejný.
Grafy spojitých křivek Funkce plot se dvěma parametry (3) Jsou-li oba parametry matice, vykreslují se sloupce y oproti odpovídajícím sloupcům x. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(x,y) >>x = [1,2 3,9 4,8 9,10]; >>y = [10,20; 11,35; 28,2; 0,7]; >>plot(x,y);
Grafy spojitých křivek Funkce plot se dvěma parametry (4) Je-li jeden z parametrů skalár, druhý parametr může být skalár nebo vektor. Matlab chápe odpovídající souřadnici jako konstantní. Vykreslují se body, k jejich "zviditelnění" je třeba změnit formát grafu (viz dále). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(x,y) >> a=[1,1.5,5,7,3]; >>plot(4,a,'*');
Funkce plot s několika páry parametrů Chování i kombinace parametrů stejné jako při použití dvou parametrů. Umožňuje nakreslit více nezávislých grafů v jednom obrázku. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Grafy spojitých křivek plot(x1,y1,x2,y2,...) >>x = linspace(0,2*pi); >>plot(x,sin(x),x,cos(x));
Funkce plot s několika páry parametrů (2) Není nutné, aby rozsahy na ose x byly pro všechny grafy stejné. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Grafy spojitých křivek POZNÁMKA plot(x1,y1,x2,y2,...) >>x1 = linspace(0,2*pi); >>x2 = linspace(-pi,pi/2); >>plot(x1,sin(x1),x2,cos(x2));
Používají se tři parametry (resp. trojice parametrů), třetí parametr format je textovýřetězec a umožňuje ovládat některé vlastnosti grafu: styl čáry barvu čáry typ značky Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Řízení formátu grafu Barva Značka r Red + plus g Green o kolečko b Blue * hvězdička Styl čáry m Magenta . tečka - plná c Cyan x křížek -- čárkovaná y Yellow square nebo s čtvereček : tečkovaná k Black diamond nebo d kosočtverec -. čerchovaná w White ^ trojúhelník v > < pentagram nebo p pentagram hexagram nebo h hexagram plot(x,y,format) plot(x1,y1,format,x2,y2,format2,...) Není-li specifikován typ čáry, ale pouze typ značky, budou se kreslit pouze značky, nikoliv čára.
Příklad Hledali jsme regresní polynom pro naměřená data. Pro posouzení výsledku jsme vykreslili naměřená data (jako body) a průběh regresní křivky (plnou čarou). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Z MINULÉ PŘEDNÁŠKY >>load 'c:\octfce\data41.txt'; >> T = data41(1,:); >> U = data41(2,:); >>p = polyfit(T,U,2) p = -0.0012 0.0784 0.9407 >>U_ap = polyval(p,T); >>plot(T,U,'+k',T,U_ap,'-r');
Matlab používá objektový model grafu, který umožňuje ovlivňovat vzhled grafu ve velmi mnoha aspektech. Ukázka možností bude ve cvičeních. V této prezentaci jsou dále uvedeny a zjednodušeně popsány pouze základní funkce pro manipulaci s grafy. Většinu dále popsaných funkcí lze přiměřeně použít pro všechny 2-D i 3-D grafy. Aktivuje ('on') a nebo deaktivuje ('off') kreslení mřížky. Nastaví a zobrazí titulek aktuálního grafu (text nad grafem). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Řízení formátu grafu grid on grid off title('název')
Určuje, zda další příkaz (příkazy) pro kreslení povedou k vytvoření nového grafu a smazání stávajícího (hold off, defaultní chování), nebo zda se budou další grafy přidávat do grafu stávajícího (hold on). Nastaví a zobrazí popisky os. Nastaví a zobrazí legendu grafu. Názvy se uvádějí v pořadí, v jakém byly grafy vykreslovány. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Řízení formátu grafu hold on hold off xlabel('text') ylabel('text') zlabel('text') legend('graf1','graf2', ...)
Nastavení rozsahu na osách (jinak jsou počítány automaticky). cmin a cmax jsou limity barevné škály u 3-D grafů. Nastaví počátek do levého horního rohu. Nastaví počátek do levého dolního rohu (default). Na všech osách bude stejné měřítko. Příkaz axis má mnoho dalších možností. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Řízení formátu grafu axis([xmin xmax ymin ymax]) axis([xmin xmax ymin ymax zmin zmax cmin cmax]) axis ij axis xy axis equal
Umožňuje umístit do jednoho obrázku několik zcela samostatných grafů s vlastními osami. Grafy jsou uspořádány do matice o m řádcích a n sloupcích, kreslení se týká grafu s indexem p (pořadové číslo brané po řádcích). Příkaz subplot má mnoho dalších možností. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Řízení formátu grafu subplot(m,n,p)
Polární souřadnice Kreslení 2-D grafu v kartézské rovině, body jsou zadávány v polárních souřadnicích. Řízení formátu grafu je stejné jako u funkce plot. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. polar(úhel,rádius) polar(úhel,rádius,formát) >>polar(0:0.1:10*pi,0:0.1:10*pi)
Křivka v prostoru Kreslení 3-D grafu podle zadaných souřadnic. Xn, Yn a Zn jsou vektory nebo matice. Chování při kombinaci parametrů různých typů a řízení formátu grafu je stejné jako u funkce plot. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot3(X1,Y1,Z1, ...) plot3(X1,Y1,Z1,format, ...) >>z=[0:0.1:10*pi]; >>plot3(cos(z),sin(z),z); >> grid on;
Prostorové zobrazení ploch Vykreslí drátěný model. X, Y i Z jsou matice, odpovídající prvky matic X a Y představují souřadnice, hodnotu plochy v daném bodě obsahuje odpovídající prvek matice Z. Funkce meshc navíc vykreslí izočáry v půdoryse (v rovině XY). Vykreslí povrch plochy. X, Y i Z jsou matice, odpovídající prvky matic X a Y představují souřadnice, hodnotu plochy v daném bodě obsahuje odpovídající prvek matice Z. Funkce surfc navíc vykreslí izočáry v půdoryse (v rovině XY). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. mesh(X,Y,Z) meshc(X,Y,Z) surf(X,Y,Z) surfc(X,Y,Z)
Prostorové zobrazení ploch Pro kreslení prostorových ploch je zapotřebí mít k dispozici matice s hodnotami souřadnic na osách x a y, které tvoří tzv. "mřížku v půdoryse". Tyto matice pak slouží jako argument pro výraz (funkci) pro výpočet hodnoty souřadnice z. Funkce meshgrid generuje tyto matice na základě vektorů popisujících souřadnice na osách x a y. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. [X,Y] = meshgrid(x,y) >>x=[1,2,3,4]; >>y=[4,5,6]; >>[X,Y]=meshgrid(x,y) X = 1 2 3 4 1 2 3 4 1 2 3 4 Y = 4 4 4 4 5 5 5 5 6 6 6 6 >>
Prostorové zobrazení ploch Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. y=[0:10]; x=[-5:5]; [X,Y]=meshgrid(x,y); Z=10*X.^3+2.*Y.^3; subplot(2,2,1); mesh(X,Y,Z); title('mesh'); subplot(2,2,2); meshc(X,Y,Z); title('meshc'); subplot(2,2,3); surf(X,Y,Z); title('surf'); subplot(2,2,4); surfc(X,Y,Z); title('surfc');
Prostorové zobrazení ploch Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. [x,y]=meshgrid(-3:0.1:3,-3:0.1:3); z=cos(x)+cos(y); surf(x,y,z); [x,y]=meshgrid(-3:0.1:3,-3:0.1:3); z=cos(x)+cos(y); surf(x,y,z,gradient(z^2)); colormap(copper); shading interp;
Grafy diskrétních dat Sloupkový graf Vykreslí sloupkový graf na základě dvou vektorů reprezentujících souřadnice x a y. Jediný povinný parametr je y. Je-li x vynechán, zobrazuje se jako x-ová souřadnice pořadové číslo prvku (index). width - relativní šířka sloupců (default je 0,8) color - výchozí je modrá, jinak viz plot style - výchozí je 'grouped', alternativně lze 'stacked' Obdobná je funkce barh (vodorovné sloupky). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. bar(x,y,width,style,color)
Grafy diskrétních dat Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >>y = [4,3;8,2;2,9;1,6]; >>bar(y); >>y = [4,3;8,2;2,9;1,6]; >>bar(y,'stacked');
Grafy diskrétních dat Histogram Vykreslí histogram četností výskytu hodnot ve vektoru y, hodnoty budou škálovány do 10 kategorií. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. n = hist(y) y=randn(10000,1); hist(y);
Grafy diskrétních dat Histogram Vykreslí histogram četností výskytu hodnot ve vektoru y, sloupky budou mít středy v hodnotách popsaných vektorem x. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. n = hist(y,x) y=randn(10000,1); x = -2.9:0.1:2.9; hist(y,x);
Grafy diskrétních dat Histogram Vykreslí histogram četností výskytu hodnot ve vektoru y, počet sloupků je dán skalárním parametrem nbins. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. n = hist(y,bins) y=randn(10000,1); hist(y,20);
Grafy diskrétních dat Histogram Graf se nevykreslí. Ve vektoru n je četnost výskytu odpovídající jednotlivým sloupečkům grafu. Graf se nevykreslí. Ve vektoru n je četnost výskytu odpovídající jednotlivým sloupečkům grafu, ve vektoru xout jsou středy sloupečků.V tomto případě lze histogram vykreslit Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. n = hist(...) [n,xout] = hist(...) y=randn(10000,1); [n,xout]=hist(y,20); bar(xout,n);
Grafy diskrétních dat Koláčový graf Velikosti výsečí dány procentním podílem velikosti prvků y v jejich součtu, explode - logický vektor, výseče odpovídající jedničkám v tomto vektoru se "vytrhnou" z koláče, labels - buňkové pole s popiskami výsečí Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. pie(y,explode,{labels}) v=[1,2,3]; pie(v,[1,0,0],{'žlutí','fialoví','bílí'});
Grafy diskrétních dat Schodový graf argumenty vektory nebo matice pro jediný argument tento chápán jako vektor y-ových souřadnic, jako x-ové souřadnice se berou indexy prvků daného vektoru Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. stairs(x,y) x=[1 3 4 7 9 11]; y=[2 8 18 12 6 10]; stairs(x,y);
Grafy diskrétních dat Stonkový graf argumenty vektory nebo matice pro jediný argument tento chápán jako vektor y-ových souřadnic, jako x-ové souřadnice se berou indexy prvků daného vektoru Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. stem(x,y) x=[1 3 4 7 9 11]; y=[2 8 18 12 6 10]; stem(x,y);