MATLAB umožňuje zobrazovať údaje v 2 a 3-rozmerných grafoch.
Grafické funkcie automaticky otvoria nové grafické okno, pokiaľ už predtým žiadne neexistuje. V prípade, že je už nejaké grafické okno otvorené, je použité na vykreslovanie to, ktoré "je aktívne" (jedná sa o posledné okno, ktoré bolo otvorené alebo na ktoré bolo kliknuté).
Funkcia | Opis |
---|---|
clf | zmazanie aktuálneho obrazca |
close | uzatvorenie okna grafického obrázku |
figure | otvorenie okna grafického obrázku |
gcf | číslo aktuálneho okna grafického obrázku |
Príkaz figure poskytuje nasledovné možnosti zápisu:
% otvorenie okna grafického obrázku č.3 >> figure(3) % obrázok % otvorenie okna grafického obrázku č.2 >> figure(2) % obrázok >> gcf % číslo aktuálneho okna grafického obrázku ans = 2 >> close % uzatvorenie aktívneho okna grafického obrázku >> close(3) % uzatvorenie okna grafického obrázku č.3 >> close all % uzatvorenie všetkých okien grafických obrázkov
Funkcia | Opis |
---|---|
fill | vyplnenie dvojrozmerného mnohouholníka |
loglog | zobrazenie, ak osi majú logaritmické mierky |
plot | lineárne zobrazenie |
plotyy | lineárne zobrazenie s mierkami na ľavej a pravej strane |
semilogx | zobrazenie, ak os x je v logaritmickej mierke |
semilogy | zobrazenie, ak os y je v logaritmickej mierke |
Lineárne zobrazenie bodov, priebehov veličín je možné uskutočniť funkciou plot(x1,y1,x2,y2, ..., xn,yn), kde x1, y1, x2, y2, ..., xn, yn sú vektory s hodnotami súradníc bodov.
>> x = [-5:0.1:5]; >> y = x.^2; >> plot(y) % vykreslí hodnoty 'y' v závislosti na ich poradí - obrázok >> plot(x,y) % vykreslí hodnoty 'y' v závislosti na hodnotách 'x' - obrázok
Pri zobrazovaní pomocou funkcie plot je možné zadefinovať farbu, typ a znaky vykreslovanej čiary nasledovným spôsobom: plot(x,y,'farba_typ_znak'), kde farba_typ_zank je reťazec zložený zo symbolov vyjadrujúcich farbu, typ a znak čiary.
Symbol | Farba (RGB) | Symbol | Typ čiary |
---|---|---|---|
c | cyan (0 1 1) | - | plná čiara (auto) |
m | magenta (1 0 1) | -- | čiarkovaná |
y | žltá (1 1 0) | -. | bodkočiarkovaná |
r | červená (1 0 0) | : | bodková |
g | zelená (0 1 0) | none | žiadna |
b | modrá (0 0 1) | ||
w | biela (1 1 1) | ||
k | čierna (0 0 0) |
Znak | Opis znaku |
---|---|
+ | plus |
o | kruh |
* | hviezdička |
. | bodka |
x | krížik |
square | štvrtok |
diamond | kosoštvorec |
V | dole orientovaný trojuholník |
< | vľavo orientovaný trojuholník |
> | vpravo orientovaný trojuholník |
pentagram | päťcípa hviezda |
hexagram | šesťcípa hviezda |
none | žiadny (auto) |
>> x = [-5:5]; >> y = x.^2; >> plot(x,y,'r-*',x,y/2,'m-.') % obrázok
Pri funkciách semilogx, semilogy a loglog ide o podobné zobrazenie ako v prípade lineárneho zobrazenia, len niektorá z osí alebo obe sú v logaritmickej mierke.
>> x = 0:0.01:4; >> y = sin(0:0.01:4); >> z = x.^2;
>> figure >> loglog(x,y) % obrázok
Funkciou fill(x,y,c) je možné zobraziť farebný mnohouholník, kde x,y sú vektory súradníc bodov mnohouholníka a c je premenná, ktorá definuje farbu.
>> figure >> fill([0,1,0.5],[0,0,1],'r') % obrázok
>> figure >> plotyy(x,y,x,z) % obrázok
>> [amp,faza,w] = bode([1],[1 2 1]) amp = 0.9999 0.9996 ... 0.0004 0.0001 faza = -1.1459 -2.2915 ... -177.7085 -178.8541 w = 0.0100 0.0200 ... 50.0000 100.0000 >> amp_db = 20*log10(amp) amp_db = -0.0009 -0.0035 ... -67.9623 -80.0009
>> plot(w,amp_db) % obrázok
>> semilogx(w,amp_db) % obrázok
Funkcia | Opis |
---|---|
axes | vytvorenie osí na ľubovoľnú pozíciu |
axis | nastavenie parametrov osí a vzhľadu |
caxis | nastavenie rozsahu farieb osí |
cla | zmazanie osí |
box | zobrazenie rámika osí |
gca | vracia číslo aktuálnych osí |
get | zistenie nastavenia grafického objektu |
hold | zachovanie aktuálneho grafu |
set | nastavenie vlastností grafického objektu |
subplot | rozdelenie grafického okna na subokná |
Funkciou axes je možné vytvoriť osi a umiestniť ich na ľubovoľné miesto v grafickom okne
% nastavenie parametrov osí a vzhľadu % axes('position',[left, bottom, width, height]), % kde left, bottom sú body poč. súradnicového systému % a width, height sú veľkosti x-ovej a y-ovej osi (rozmery 1x1) >> axes('position',[0.2, 0.2, 0.7, 0.7]) % obrázok
% nastavenie rozmerov osí x, y >> axis([0,100,0,100]) % obrázok % nastavenie rozmerov osí x, y a z >> axis([0,10,0,10,1,5]) % obrázok % funkcia vracia vektor nastavenia osí >> axis ans = 0 10 0 10 1 5 % rozmery osí sa nastavia automaticky >> axis auto % obrázok % vypnutie zobrazenia osí >> plot([0:0.01:pi],sin([0:0.01:pi])) >> axis off % obrázok % zapnutie zobrazenia osí >> axis on
Ak je požadované pridať do jedného grafu viac priebehov alebo v ňom vykonať ďalšie grafické operácie, potom je potrebné použiť príkaz hold on.
>> plot(x,y,'r') % obrázok >> hold on >> plot(x,z,'b') % obrázok
>> hold off
Príkaz subplot(m,n,p) rozdelí graf na subokná, kde m,n,p vyjadrujú počet riadkov, stĺpcov a poradie okna
>> subplot(3,4,7) % obrázok
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
>> subplot(1,2,1) >> plot(x,y,'r') >> subplot(1,2,2) >> plot(x,z,'b') % obrázok
Pri vytvorení grafického objektu mu Matlab pridelí identifikačné číslo. Pomocou tohto čísla je možné potom pristupovať k jednotlivým objektom. Číslo objektu vracia vždy funkcia, ktorá ho vytvorila.
Nastavenie objektu je možné získať príkazom get(h), kde h je čislo objektu. Nastaviť určitú položku vlastnosti je možné príkazom set(h,'položka',hodnota).
>> h = plot(w,amp_db);
>> get(h) Color = [0 0 1] EraseMode = normal LineStyle = - LineWidth = [0.5] Marker = none MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [ (1 by 45) double array] YData = [ (1 by 45) double array] ZData = [] BeingDeleted = off ButtonDownFcn = Children = [] Clipping = on CreateFcn = DeleteFcn = BusyAction = queue HandleVisibility = on HitTest = on Interruptible = on Parent = [102.017] Selected = off SelectionHighlight = on Tag = Type = line UIContextMenu = [] UserData = [] Visible = on
% pôvodné: LineStyle = - % zmeniť na: LineStyle = x >> set(h,'LineStyle','x') % obrázok
% pôvodné: Color = [0 0 1] (R,G,B) % zmeniť na: Color = [0 1 0] (Color = green alebo Color = g) >> set(h,'Color','green') % obrázok
Funkcia | Opis |
---|---|
grid | čiarová sieť |
gtext | text umiestnený myšou |
legend | vytvorenie legendy priebehov |
text | umiestnenie textu |
title | názov grafu |
xlabel | popis osi x |
ylabel | popis osi y |
zlabel | popis osi z |
>> t = 0:0.01:2*pi; % definovanie premennych >> y = sin(t); >> plot(t,y) % vykreslenie >> xlabel('t = 0 \rightarrow 2pi') % popis osi x >> ylabel('sin(t)') % popis osi y >> title('Priebeh funkcie sínus') % názov grafu
>> text(3*pi/4,sin(3*pi/4),'\leftarrow sin(t) = 0.707') >> text(7*pi/6,sin(7*pi/6),'sin(t) = -0.5 \rightarrow',... 'HorizontalAlignment','right') % obrázok
>> y1 = sin(t); y2 = cos(t); y3 = y1+y2; >> plot(t,y1,t,y2,t,y3); >> legend('y_1=sin(t)','y_2=cos(t)','y_3=sin(t)+cos(t)') % obrázok
>> plot(t,y1,t,y2,t,y3); >> grid on % obrázok >> grid minor % obrázok
Poznámka: ak chceme zmeniť orientáciu opisu vertikálnej osi (y) z vertikálnej na vodorovnú môžeme použiť príkaz set(get(gca,'YLabel'),'Rotation',0.0).
Znak | Zápis | Znak | Zápis | Znak | Zápis |
---|---|---|---|---|---|
\alpha | \beta | \gamma | |||
\delta | \epsilon | \omega | |||
\lambda | \xi | \pi | |||
\rho | \sigma | \tau | |||
\sigma | \Delta | \Sigma | |||
\nabla | \partial | \infty | |||
\surd | \int | \neq | |||
\in | \subset | \subseteq | |||
\leq | \geq | \uparrow | |||
\wedge | \vee | \downarrow | |||
\leftrightarrow | \leftarrow | \rightarrow | |||
¬ | \neg | \forall | \exists | ||
horný index | ^{horný index} | dolný index | _{dolný index} |
Špeciálne grafy sú využívané najmä v oblastiach:
Funkcia | Opis |
---|---|
bar | dvojrozmerný zvislý stĺpcový graf |
bar3 | trojrozmerný zvislý stĺpcový graf |
barh | dvojrozmerný vodorovný stĺpcový graf |
bar3h | trojrozmerný vodorovný stĺpcový graf |
errorbar | zobrazenie s odchýlkou |
hist | zobrazenie histogramu |
rose | zobrazenie uhlového histogramu |
polar | zobrazenie v polárnych súradniciach |
area | plošný graf |
pie | kruhový graf |
>> Y = [6 3 2;9 6 4;7 5 4;5 6 5;4 3 2]; >> bar3(Y) >> xlabel('Os x'), ylabel('Os y'), >> zlabel('Os z') % obrázok
>> t = 0:0.01:2*pi; >> polar(t,abs(sin(2*t).*cos(2*t))); % obrázok
Funkcia | Opis |
---|---|
stem | dvojrozmerné kmeňové zobrazenie |
stem3 | trojrozmerné kmeňové zobrazenie |
stairs | schodové zobrazenie |
>> x = 0:0.25:10; >> stairs(x,sin(x)); % obrázok
>> x = 0:0.1:4; >> y = sin(x.^2).*exp(-x); >> stem(x,y); % obrázok
Funkcia | Opis |
---|---|
compass | zobrazenie vektorov v polárnych súradniciach |
feather | zobrazenie vektorov pozdĺž vodorovnej čiary |
quiver | zobrazenie 2-D vektorov definovaných (u,v) parametrami |
quiver3 | zobrazenie 3-D vektorov definovaných (u,v,w) parametrami |
>> uhol = [45 0 90 150 230 300]; >> velkost = [5 7 10 6 12 8]; >> ruhol = uhol*pi/180; % prepočet na radiány >> [x,y] = pol2cart(ruhol,velkost); % prepočet do kart. súradníc >> compass(x,y); % obrázok
>> uhol = 90:-10:0; >> velkost = 5*ones(size(uhol)); >> [u,v] = pol2cart(uhol*pi/180,velkost); >> feather(u,v); % obrázok
>> x = -2:.2:2; >> y = -1.5:.2:1.5; >> [xx,yy] = meshgrid(x,y); >> zz = xx.*exp(-xx.^2-yy.^2); >> [px,py] = gradient(zz,.2,.2); >> quiver(x,y,px,py,2); % obrázok
Funkcia | Opis |
---|---|
clabel | popis hladinového zobrazenia |
contour | plošné hladinové obrazenie |
contour3 | trojrozmené hladinové obrazenie |
contourf | plošné hladinové obrazenie s farebnou výplňou |
pcolor | pseudofarebné zobrazenie |
>> z = peaks(25); >> pcolor(z) >> colormap(hsv) % obrázok
>> [C,h] = contour(z,10); >> clabel(C,h); % obrázok
>> [C,h] = contourf(z,10); >> caxis([-10 10]); % obrázok
Pri zobrazení trojrozmerného obrazca potrebujeme mať dve matice (napr. X, Y), ktorých prvky X(i,j), Y(i,j) budú obsahovať súradnice bodov v rovine. Na generovanie týchto matíc slúži funkcia meshgrid:
[X,Y] = meshgrid(v1,v2) - vektor v1 určuje interval na osi x s daným krokom a vektor v2 určuje interval na osi y s daným krokom
[X,Y] = meshgrid(v) - vektor v určuje interval na osi x aj na osi y
V 3-D zobrazeniach sa používajú podobné funkcie fill3 a plot3 ako v 2-D grafike
Funkcia | Opis |
---|---|
fill3 | Vyplnenie trojrozmerného mnohouholníka |
plot3 | zobrazenie čiar a bodov 3-D priestore (lineárne zobrazenie) |
>> t = 0:pi/50:10*pi; >> plot3(sin(t),cos(t),t); % obrázok
>> [x,y] = meshgrid([-2:0.1:2]); >> z = x.*exp(-x.^2-y.^2); >> plot3(x,y,z); % obrázok
>> x = [0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0]; >> y = [0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1]; >> z = [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0]; >> axis([0 1 0 1 0 1]); >> hold on >> for i=1:2:23 plot3([x(i) x(i+1)],[y(i) y(i+1)],[z(i) z(i+1)],'r-'); end >> fill3([0 0.5 0],[0 0 0.5],[0.5 1 1],'g'); % obrázok
Funkcia | Opis |
---|---|
mesh | trojrozmerné sieťové zobrazenie povrchu |
meshc | kombinácia zobrazení mesh/contour |
meshz | zobrazenie mesh s nulovou rovinou |
slice | objemové predstavenie zobrazenia |
surf | zobrazenie povrchu zatienením |
surfc | kombinácia zobrazení surf/contour |
surfl | zobrazenie surf s vysvietením |
surface | vytvorenie povrchu grafického obrazca |
waterfall | vlnové zobrazenie (priestorové) |
Funkcia | Opis |
---|---|
axis | nastavenie typu osí |
caxis | nastavenie rozsahu farieb z aktuálnej farebnej palety |
colormap | nastavenie farebnej palety |
hidden | skrytie siete 3-D zobrazenia |
shading | nastavenie módu tieňovania |
brighten | vyjasňovanie alebo stmavovanie farebnej palety |
lighting | nastavenie módu osvetlenia |
rotate3d | zapnutie/vypnutie možnosti natáčania obrazca |
view | špecifikácia bodov zobrazenia v 3-D grafe |
viewmtx | transformácia matíc pre zobrazenie |
>> z = peaks(25); % vytvorí maticu 25x25 >> surf(z); % zobrazenie povrchu zatienením - obrázok >> shading flat; % tieňovanie 'flat' - obrázok >> shading interp; % tieňovanie 'interpolated' - obrázok >> shading faceted; % tieňovanie 'faceted' (pôvodné) - obrázok >> colormap(copper) % zmena farby (pink) - obrázok >> surfc(z); % kombinácia zobrazení surf/contour - obrázok
>> z = peaks(25); % vytvorí maticu 25x25 >> mesh(z); % zobrazenie povrchu sieťou - obrázok >> colormap(cool); % zmena farby (cool) - obrázok >> colormap(hot); % zmena farby (hot) - obrázok >> colormap(gray); % zmena farby (gray) - obrázok >> meshc(z); % kombinácia zobrazení mesh/contour - obrázok >> meshz(z); % zobrazenie mesh s nulovou rovinou - obrázok
>> z = peaks(25); % vytvorí maticu 25x25 >> waterfall(z); % zobrazenie povrchu vlnami - obrázok >> colormap(pink); % zmena farby (pink) - obrázok
Funkcia | Opis |
---|---|
image | zobrazenie obrazu (vytvorenie objektu obrazu) |
imagesc | mierkovanie dát a zobrazenie obrazu |
imread | načítanie obrazu z grafického súboru |
imwrite | uloženie obrazu do grafického súboru |
imfinfo | získanie informácie o obraze z grafického súboru |
axis | nastavenie mierky a vzhľadu osí pri zobrazení |
Farebný obraz je v MATLABe tvorený maticou dát a maticou palety farieb.
Zápis zobrazenia | Typ obrazu |
---|---|
image(X); colormap(map) | indexový |
image(I,[0,1]); colormap(gray) | intenzívny |
image(RGB) | trojfarebný |
>> load earth; % Načítanie matice dát X, matice farebnej palety map >> image(X) % Zobrazenie obrazu >> colormap(map); >> axis image; % Nastavenie osí v pomere 1:1 % obrázok
>> X = magic(6); % Vytvorenie matice X, matice farebnej palety map >> image(X) % Zobrazenie farebného obrazu % obrázok
MATLAB umožňuje načítanie a uloženie dát farebného obrazu v niekoľkých grafických súboroch a nasledovných formátov: BMP, HDF, JPEG(JPG), PCX, TIFF, XWD.
[X,MAP] = imread('penguin','bmp'); image(X); % obrázok axis image; % obrázok imwrite(X,'penguin.jpg') % Uloženie farebného obrazu