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:
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:
figure(n)
- učiní aktivním (event. jej i otevře) grafické okno s číslem n
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)
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:
plot(y)
... vykreslí hodnoty vektoru 'y' v zavislosti na jejich poradi
plot(x,y)
... vykreslí hodnoty vektoru 'y' v zavislosti na hodnotach vektoru 'x'
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:
Barva | Značka | Typ čáry | |||
b | modrá | . | tečka | - | plná |
g | zelená | o | kolečko | : | tečkovaná |
r | červená | x | křížek | -. | čerchovaná |
c | sv.modrá | + | křížek | -- | čárkovanaá |
m | fialová | * | hvězdička | ||
y | žlutá | s | čtverec | ||
k | černá | d | diamant | ||
v | trojúhelník nahoru | ||||
^ | trojúhelník dolů | ||||
< | trojúhelník doleva | ||||
> | trojúhelník doprava | ||||
p | pentagram | ||||
h | hexagram |
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:
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)
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 |
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.
Pokud chceme vykreslovat více grafů do téhož (pod)okna, můžeme použít dva způsoby:
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
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ý:
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
grid on
- zobrazí mřížku
grid off
- vypne zobrazení mřížky (implicitně nastaveno)
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 m
xn
, 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')
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')
Každé grafické okno můžeme upravovat pomocí panelu nástrojů (není-li zobrazen, zaškrtneme Figure Toolbar v menu View):
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ů) |
*.fig
, který umí zobrazit MATLAB:
*.fig
)