Table of Contents

Základní grafy

Liniové 2D grafy

Základní 2D graf vytváříme příkazem plot (podrobně viz doc plot). Širokou škálou příkazů můžeme specifikovat zobrazované prvky.
x = linspace(0,4*pi,1000);
y = sin(x);
figure(1) % okno grafu
plot(x,y,'b-') % modra linie
xlabel('x') % popis osy x
ylabel('y') % popis osy y
legend('y = sin(x)') % legenda
title('Graf funkce') % nadpis
grid on % mrizka
axis equal % rovnomerne osy
xlim([0 4*pi]) % limity osy x
ylim([-1.1 1.1]) % limity osy y

Graf z Workspace

Graf lze snadno generovat přímo pro proměnné z Workspace. Označíme-li vybrané proměnné, poté se odemknou možnosti v záložce Plots. V okně Figure následně můžeme měnit parametry grafu. Vše, co se provádí ve Figure, lze zapsat do kódu v Editoru. Kód grafu lze generovat z File/Generate Code.

Další typy grafů

Existuje celá řada typů grafů pro různé vizualizace:
% Vice liniovych grafu v jednom okne
X = linspace(-2*pi,2*pi,100);
Y1 = sin(X);
Y2 = cos(X);
figure
% plot(X,Y1,'b-','LineWidth',2);
% hold on
% plot(X,Y2,'r--','LineWidth',2);
% hold off
plot(X,Y1,'b-',X,Y2,'r--','LineWidth',2);
xlabel('x'); ylabel('y')
title('Graf funkcí sin(x) a cos(x)')
grid on
legend('y = sin(x)','y = cos(x)')
xlim([-pi pi]); ylim([-1.1 1.1])
% Ukazka tvorby 3D grafu - MESH
x = linspace( -2, 2, 50 ); % definice vektoru os
y = linspace( -3, 3, 100 );
[ X, Y ] = meshgrid( x, y ); % matice gird souradnic v osach, viz help meshgrid
Z = peaks( X, Y ); % integrovana funkce Matlabu
figure
mesh( X, Y, Z ); % sitovy graf
xlabel( 'x' ); ylabel( 'y' ); zlabel( 'z' ) % popis os
title( 'Peaks') % titulek
% Ukazka tvorby vice grafu v jednom okne - SUBPLOT
Z = tanh(Y.*(Y.^4 + 5*X.^4 - 10*X.^2.*Y.^2)./(X.^2 + Y.^2).^4);
figure
subplot(1,3,1) % rozdeleni okna na 1x3, kresba do 1. podokna
mesh(X,Y,Z)
grid on
xlim([-2 2]); ylim([-2 2]); zlim([-1.1 1.1]) % nastaveni rozsahu zobrazeni
xlabel('x'); ylabel('y'); zlabel('z')
title('Graf typu mesh')
subplot(1,3,2) % rozdeleni okna na 1x3, kresba do 2. podokna
contour3(X,Y,Z,15)
grid on
xlim([-2 2]); ylim([-2 2]); zlim([-1.1 1.1]) % nastaveni rozsahu zobrazeni
xlabel('x'); ylabel('y'); zlabel('z')
title('Graf typu contour3')
subplot(1,3,3) % rozdeleni okna na 1x3, kresba do 3. podokna
contour(X,Y,Z,15)
grid on
xlim([-2 2]); ylim([-2 2]) % nastaveni rozsahu zobrazeni
xlabel('x'); ylabel('y')
title('Graf typu contour')
% Polarni graf
THETA = linspace(0,2*pi,100);
R = sin(2*THETA).*cos(2*THETA);
figure
polarplot(THETA,R,'r-')
title({'Polární graf','R = sin2\theta cos2\theta'}) % rozdeleni titulku do vice radku pomoci bunky {}
% Sloupcovy graf
D = [
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
529 525 523 529 537 529 565 604 625 642 647 641 657 651
224 269 270 275 271 272 286 296 293 301 304 302 302 303
152 149 147 146 144 148 149 151 160 167 180 179 199 217
104 130 131 141 145 144 149 152 155 154 153 166 164 170
];
figure
bar3( D( 2:end, : ) )
xlabel('rok'); zlabel('počet obyvatel')
title('Vývoj počtu obyvatel ve vybraných obcích okresu Česká Lípa v letech 2000 až 2013')
% prepsani textu os naposledy zobrazeneho grafu (gca - get handle to current axis)
set( gca, 'YTickLabel', {'Dubnice','Bezděz','Bohatice','Chotovice'}, ...
'XTickLabel', {'2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012','2013'} )
% Histogram
x = randn( 1, 500 );
figure
histogram(x,20)
title( 'Histogram' )
xlabel( 'hodnota' ); ylabel( 'četnost' )

Příklady

Příklad 1

Vytvořte skript grafy1.m a v úvodu vyčistěte prostředí. Vytvořte následující:

Příklad 2

Vytvořte skript grafy2.m a v úvodu vyčistěte prostředí obdobně jako v Příkladu 3. Vytvořte následující:

Příklad 3

Vytvořte skript grafy3.m a v úvodu vyčistěte prostředí obdobně jako v Příkladu 3. Vytvořte následující: