Grafika

From DCEwiki
Jump to: navigation, search
Hlavní stránka Laboratorní modely Vyučované předměty Vybavení Historie Správce laboratoře Pro studenty Odkazy
MATLAB
Grafika
Řetězce
LTI
Doporučené programy

Grafika:

Příklady v této kapitole na sebe navzájem navazují. V každém příkladu je zbytečné vždy opakovat inicializaci proměnných nastavení parametrů vykreslování a podobně. Předpokládá se, že čtenář si bude příklady procházet postupně, a jestliže ne tak musí použít některé příkazy z příkladů předešlých. Ty mu vytvoří stejné prostředí. Celý kód příkladu je uveden na závěr.

Funkce plot( ) a vykreslování grafů:

Zobrazení grafu provádí funkce plot( ). Syntaxe funkce má tvar:

>> plot(x,y,"atributy")

Atributy nejsou povinné. Pomocí nich lze nastavit typ čáry, její barvu a jak budou zobrazeny její body. Parametry x a y jsou vektory obsahující xové a ypsilonové souřadnice bodů grafu. Je-li zadán pouze jeden vektor, je místo prvku druhého vektoru použit index položky prvního, tedy 1, 2, 3, ... Dvojic vektorů může být i více a potom budou vykresleny do stejného grafu. Pokud použijeme funkci plot znovu, je předchozí graf překreslen novým. 3D graf vykreslíme funkcí plot3( ), které zadáme 3 vektory. Vznikne tak "prostorová křivka".

Poznámka
>> x = linspace(0,2*pi,60)

% přiřadí prvkům vektoru x hodnoty od 0 do 2*Pi (60 hodnot).

>> y = sin(x)

>> plot(x,y)

% graf vykreslen

>> z = cos(x)

>> plot(x,z)

% místo sinu zobrazen kosinus

>> title('Funkce sinus a cosinus')

% zobrazí se popis nad grafem (hlavička)

Graf je vykreslen vždy do aktuálního okna,kterých může být i několik. K tomu abychom ovlivnili, zda má být předchozí graf překreslen nebo nový pouze přidán slouží příkaz hold. Po zadání příkazu hold on dochází k přikreslování dalších grafů ke grafu původnímu. Takto můžeme například do jednoho grafu vykreslit naměřenou odezvu reálného systému a jeho linearizovaného modelu zadaného přenosem. Při hold off je předcházející obsah grafu přepsán novým.

Poznámka
>> hold on

% další průběh se přikreslí k původnímu

>> plot(x,y)

% nyní zobrazeny obě funkce

Více grafů v jednom okně - funkce subplot():

Chceme-li v jednom okně zobrazit více grafů, použijeme funkci subplot(r,s,t). Parametr r udává počet řádek, s počet sloupců "matice grafů" a parametr t umístění položky aktuálního grafu. Ty jsou číslovány způsobem

1 2

3 4

pro graf 2×2. Za funkcí subplot( ) pak následuje funkce plot( ).

Poznámka
>> clf % obsah okna smazán

>> subplot(2,2,1)

% definice 4 podgrafů [2×2]; aktivní podgraf 1 (vlevo nahoře)

>> plot(x,y,'r.--')

% sinus, nyní použity atributy

>> subplot(2,2,2)

% aktivní podgraf 2 (vpravo nahoře)

>> plot(x,z,'m.:')

% cosinus

>> subplot(2,1,2)

% definice 2 podgrafů [2×1] ; aktivní podgraf 2 (dole)

>> plot(x,'g>-.')

Vzhled a popis grafu:

Pro dosažení přehlednosti grafu je vhodné popsat jeho osy nebo jej popsat či okomentovat. K tomu slouží následující funkce.

title(' ') Nastavuje nadpis grafu. Chceme-li mít popis víceřádkový zadáme pole řetězců.
xlabel(' ') Popis osy x
ylabel(' ') Popis osy y
grid Zapíná a vypíná mřížku grafu (lze i samostatně pro různé osy).
axis Nastaví vlastnosti a zobrazeni os
legend Slouží k popisu jednotlivých funkčních průběhů
text(x,y,' ') Vypíše 'TEXT' na souřadnice [x,y]


Poznámka
>> title('plot(x)')

% popis aktuálního okna

>> grid on

% zobrazení mřížky (pouze v jednom grafu)

>> xlabel('x')

% popis os

>> ylabel('f(x)')

Práce s okny pro funkci plot():

Grafy vykreslujeme do samostatného okna, které můžeme vytvořit pomocí funkce figure( ). pokud některé proměnné přiřadíme její návratovou hodnotu, dostáváme číslo okna typu figure, které vytvořila. Pokud ji voláme bez parametru, vytvoří nové okno. Když jí zadáme parametr, vytvoří okno s číslem rovným parametru. Jestliže již takové okno existuje, pak na něj pouze přepne. Zcela analogicky funguje opačný příkaz close( ), který okna zavírá. Pro zavření všech oken najednou použijeme příkaz close all.

Pouhé vymazání obsahu okna slouží funkce clf. Varianta clf reset zruší i vlastnosti okna.

Funkce gcf vrací číslo aktuálního okna.

Výstup z Matlabu do vlastních dokumentů:

Každé grafické okno (figure) umožňuje ve svém menu vytištěni na tiskárně, export do některého grafického souboru (.emf, .eps, .bmp, .jpeg, .png, ...) nebo uložení na pevný disk přímo jako okno. Kopírování přes clipboard je také způsob jak kopírovat výstupy Matlabu. V menu "Edit" je však nejdříve vhodné zvolit položku "Copy Options..." a nastavit možnost vybělení pozadí, ovlivnění rozlišení bitmapy, případně ztrátovost při převodu do metafile. V případě problémů se také osvědčilo zadat pokyn k vytištění do souboru pro nějakou poscriptovou tiskárnu, čímž vznikne .ps soubor. Celý kód příkladu práce s grafy:

Poznámka
>> figure(1)

>> x = linspace(0,2*pi,60)

% přiřadí prvkům vektoru x hodnoty od 0 do 2Pi (60 hodnot).

>> y = sin(x)

>> plot(x,y)

% graf vykreslen

>> z = cos(x)

>> plot(x,z)

% místo sinu zobrazen kosinus

>> hold on

% další průběh se přikreslí k původnímu

>> plot(x,y)

% nyní zobrazeny obě funkce

>> title('Funkce sinus a cosinus')

% zobrazí se popis nad grafem (hlavička)

>> xlabel('x')

% popis os

>> ylabel('f(x)')

>> grid on

% zobrazení mřížky

>> figure(2)

% nové okno pro více grafů

>> subplot(2,2,1)

% definice 4 podgrafů [2×2]; aktivní podgraf 1 (vlevo nahoře)

>> plot(x,y,'r.--')

% nyní použity atributy

>> subplot(2,2,2)

% aktivní podgraf 2 (vpravo nahoře)

>> plot(x,z,'m.:')

>> subplot(2,1,2)

% definice 2 podgrafů [2×1] ; aktivní podgraf 2 (dole)

>> plot(x,'g>-.')

>> title('plot(x)')

% popis aktuálního okna

>> grid on

% zobrazení mřížky (pouze v jednom grafu)

>> figure(1)

% přepne zpět na původní okno