2D grafika

MATLAB umožňuje snadnou vizualizaci dat. Jeho možnosti pro tvorbu dvourozměrných grafů jsou rozsáhlé - v této lekci si ukážeme část funkcí, které budeme používat při kreslení 2D grafů.

Při práci s 2D grafikou využíváme grafický režim MATLABu, který má svá vlastní grafická okna (Figure No.4, Figure No.12 apod.)

Postup:

  1. příprava dat (nezávisle proměnná, závisle proměnná/é)
  2. výběr grafického okna, případně podokna
  3. vykreslení grafu
  4. popis grafu
  5. nastavení os, mřížky a případné další úpravy grafu
  6. uložení grafu do souboru (obrázek)

Následuje popis funkcí a příkazů, které lze pro uvedené účely použít.

Výběr grafického okna - funkce figure

Grafické funkce automaticky otevřou nové grafické okno, pokud zatím žádné neexistuje (Figure No. 1). V případě, že je již nějaké grafické okno otevřeno, je použito pro vykreslování to, které "je aktivní" (jedná se o poslední okno, které bylo otevřeno nebo na které bylo kliknuto). Chceme-li vykreslovat do úplně nového okna, přestože jiná již existují, nebo do vykreslovat do okna se zvoleným číslem, použijeme funkci figure s jedním nebo žádným parametrem:
figure - otevře úplně nové grafické okno a učiní jej aktivním:

nové grafické okno

figure(n) - učiní aktivním (event. jej i otevře) grafické okno s číslem n

Zavření grafického okna - funkce close

Potřebujeme-li grafické okno zavřít, můžeme to provést pomocí myši (křížek v pravém horním rohu okna) nebo pomocí příkazu/funkce close:
close - zavře aktivní grafické okno
close(X) - zavře grafické okno s názvem Figure No.X (okno nemusí být aktivní)
close all - zavře všechna grafická okna (netýká se tedy ani okna M-editoru, ani okna Matlabu)

Kreslení X,Y-bodového grafu - funkce plot

Funkce plot kreslí graf zadaný pomocí hodnot ve vektoru/vektorech. K tomu si otevře nové grafické okno (pokud žádné neexistovalo) nebo začne kreslit do aktivního okna.

Syntaxe:

  1. plot(y) ... vykreslí hodnoty vektoru 'y' v zavislosti na jejich poradi
  2. plot(x,y) ... vykreslí hodnoty vektoru 'y' v zavislosti na hodnotach vektoru 'x'
  3. plot(x,y,str) ... vykreslí hodnoty vektoru 'y' v zavislosti na hodnotach vektoru 'x' a pomocí řetězce str ovlivní výsledný vzhled grafu: barvu značky a čáry, typ značky a typ čáry (viz níže)

Proměnná str obsahuje až tři hodnoty vlastností, v pořadí barva, typ značky a typ čáry. Implicitně je nastavena barva 'b' (modrá), značka žádná a plná čára. Hodnoty jednotlivých vlastností jsou v tabulce:

BarvaZnačkaTyp čáry
bmodrá.tečka-plná
gzelenáokolečko:tečkovaná
rčervenáxkřížek-.čerchovaná
csv.modrá+křížek--čárkovanaá
mfialová*hvězdička 
yžlutásčtverec
kčernáddiamant
 vtrojúhelník nahoru
^trojúhelník dolů
<trojúhelník doleva
>trojúhelník doprava
ppentagram
hhexagram

Příklad - graf polynomu černou plnou čárou:
>> x=-1:0.01:1; plot(x,2*x.^3-.5*x.^2-x+1,'k')
a výsledek:
první graf

Popis grafu - funkce xlabel, ylabel, title, text a legend

title(popisek) - přidání názvu grafu
xlabel(popisek) - přidání popisu osy x
ylabel(popisek) - přidání popisu osy y
V uvedených případech je popisek libovolný řetězec, který může obsahovat speciální znaky (viz níže).
Přidání textu do grafu: lze využít ikonu v panelu nástrojů grafického okna nebo funkci
text(x,y,popisek), kde x a y jsou souřadnice bodu, kam je text umístěn.

Některé speciální znaky (podle TeXovské konvence)

ZnakZápisZnakZápisZnakZá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

Chceme-li přidat ke grafu legendu (popsat více grafů v jednom okně), použijeme funkci legend(text1,text2,...), jejímiž parametry jsou texty popisující všechny vykreslené grafy (v pořadí daném vykreslováním těchto grafů), např.:
legend('graf1','graf2','graf3','graf4')
Více viz níže.

Více grafů v jednom okně (funkce plot nebo příkaz hold)

Pokud chceme vykreslovat více grafů do téhož (pod)okna, můžeme použít dva způsoby:

  1. funkci plot, které předáme jako parametry všechny vykreslované grafy (u každého může být také uvedena barva, značka a typ čáry):
    >> x=-pi:pi/25:pi; % nezavisle promenna
    >> y1=sin(x); y2=cos(x); y3=sin(x).^2;% 3 funkce
    >> plot(x,y1,'r',x,y2,'b',x,y3,'k') % tri v jednom (cerveny, modry a cerny graf)
    >> plot(x,y1,'r',x,y2,x,y3,'k') % totez - modra barva se nemusi zadavat
    >> xlabel('x') % popis osy x
    >> title('Grafy 3 funkci') % nazev grafu
    >> legend('sin(x)', 'cos(x)', 'sin^2(x)') % pridani legendy ke grafu

  2. příkaz hold on, který "zapne" možnost přikreslovat do grafického okna jiné grafy, aniž by "zmizel" graf již nakreslený. Standardní stav (kdy se graf překresluje) pak docílíme příkazem hold off:
    >> x=-pi:pi/25:pi; % nezavisle promenna
    >> y1=sin(x); y2=cos(x); y3=sin(x).^2;% 3 funkce
    >> plot(x,y1,'r') % prvni graf (cerveny)
    >> hold on % prikreslime neco dalsiho
    >> plot(x,y2) % prvni graf (modry - netreba udavat barvu)
    >> plot(x,y3,'k') % treti graf (cerny)
    >> xlabel('x') % popis osy x
    >> title('Grafy 3 funkci') % nazev grafu
    >> legend('sin(x)', 'cos(x)', 'sin^2(x)') % pridani legendy ke grafu
    >> hold off % uz nic prikreslovat nebudeme

Výsledek je v obou případech stejný:
tri grafy v jednom okne

Volba zobrazení os - příkaz axis, funkce xlim a ylim

Pro změnu rozsahu osy x (zkrácení nebo prodloužení) použijeme příkaz xlim(v), kde v je vektor obsahující minimální a maximální hodnotu na ose x.
Příklady:
>> xlim([-5 2.3]) % 1. zpusob
>> osa_x=[-5 2.3]; xlim(osa_x) % 2. zpusob

Pro změnu rozsahu osy y (zkrácení nebo prodloužení) použijeme příkaz ylim(v), kde v je vektor obsahující minimální a maximální hodnotu na ose y.
Příklady:
>> ylim([0.5 12.5])% 1. zpusob
>> osa_y=[0.5 12.5]; ylim(osa_y) % 2. zpusob

Pro změnu rozsahu obou os (x i y) lze použít příkaz axis(v), kde v je vektor obsahující minimální hodnotu na ose x, maximální hodnotu na ose x, minimální hodnotu na ose y a maximální hodnotu na ose y.
Příklady:
>> axis([-5 2.3 0.5 12.5]) % 1. zpusob
>> rozsah=[-5 2.3 0.5 12.5]; axis(rozsah) % 2. zpusob

Zobrazení mřížky - příkaz grid

grid on - zobrazí mřížku
grid off - vypne zobrazení mřížky (implicitně nastaveno)

Rozdělení grafického okna na části - funkce subplot

Pokud potřebujeme do jednoho grafického okna umístit více navzájem nezávislých grafů, použijeme funkci subplot, která vymezí konkrétní část grafického okna a aktivuje ji pro vykreslování:
subplot(m,n,c) - funkce si "představí" grafické okno jako matici mxn, očísluje si jednotlivé buňky (zleva doprava, odshora dolů) a aktivuje právě jednu - c-té podokno. Pokud je v jeho místě již jiné podokno, bude staré podokno odstraněno. Funkce subplot vytváří pouze JEDNO podokno, takže ji většinou musíme volat vícekrát:
>> x=0:pi/20:2*pi;
>> subplot(3,1,1); plot(x,sin(x),'k'), title('sin x')
>> subplot(3,1,2); plot(x,sin(x.^2),'k'), title('sin x^2')
>> subplot(3,1,3); plot(x,sin(x).^2,'k'), title('sin^2x')


3 v jednom

Lze kombinovat podokna různé délky či šířky, pouze se nesmějí vzájemně překrývat:
>> x=-1:0.01:1;
>> subplot(2,2,1); plot(x,2*x.^2+1,'k'), title('2x^2+1')
>> subplot(2,4,3); plot(x,x.^3,'k'), title('x^3')
>> subplot(2,4,4); plot(x,x.^5,'k'), title('x^5')
>> subplot(2,1,2); plot(x,x.^2-0.25,'k'), title('x^2-0.25')


čtyři v jednom

Nástroje grafického okna

Každé grafické okno můžeme upravovat pomocí panelu nástrojů (není-li zobrazen, zaškrtneme Figure Toolbar v menu View):

panel nástrojů

Význam jednotlivých nástrojů:
otevře nové grafické okno
otevře uložený graf (*.fig)
uloží graf do souboru (*.fig)
odešle graf na tiskárnu
umožňuje měnit vlastnosti objektů v grafickém okně
umožňuje přidat do grafu text
umožňuje přidat do grafu šipky
umožňuje přidat do grafu čáry
lupa - zvětšení v místě kliknutí
lupa - zmenšení v místě kliknutí
rotace (efektní jen u 3D grafů)

Uložení grafu do souboru

  1. uložení grafu jako obrázek, který je možno vkládat do dokumentů (texty v MS Wordu, www stránky,...):
    obsah grafického okna uložíme do souboru následujícím způsobem:
    1. menu File--Export...
    2. vyplnění údajů v dialogovém okně "Export":
      • výběr cílového adresáře
      • výběr typu souboru (např. pro vložení do MS Wordu lze použít formát BMP (bezeztrátový), JPG nebo PNG, pro LaTeX formát EPS...)
      • zadání jména souboru
    3. aktivace tlačítka Save (tím se vytvoří obrázkový soubor; někdy uložení trvá déle, a proto počkejte se zavíráním grafických oken, dokud nezmizí přesýpací hodiny na kurzoru myši)

    Poznámka: do MS Wordu pak obrázek vložíme pomocí menu Vložit--Obrázek--Ze souboru...
  2. uložení grafu jako soubor *.fig, který umí zobrazit MATLAB:
    1. menu File--Save as... (nebo Save)
    2. výběr cílového adresáře
    3. kontrola typu souboru (*.fig)
    4. zadání jména souboru
    5. aktivace tlačítka Save

    Poznámka: soubor typu FIG se dá kdykoli otevřít v MATLABu (např. přes menu File--Open) - otevře se uložené grafické okno.




Předchozí lekce   PŘEHLED   Další lekce