21. Matlab – Pokročilé nástroje grafov
05. Február, 2010, Autor článku: Blaho Michal, MATLAB/Comsol
Ročník 3, číslo 2
Pridať príspevok
V ostatných častiach seriálu o Matlabe sme si hovorili o práci s grafmi. Grafy sme vytvárali v príkazovom riadku a príkazov. Matlab poskytuje niekoľko interaktívnych grafických nástrojov na uľahčenie práce bez nutnosti písania príkazov. Jedno takéto prostredie, ktoré slúži na tvorbu grafov si dnes popíšeme.
Ako som už v úvode naznačil existuje niekoľko možností ako v Matlabe vytvoriť graf:
- s využitím pokročilých nástrojov grafov na interaktívnu tvorbu grafu
- s využitím príkazového riadku alebo skriptov / funkcií
- kombináciou oboch prístupov
Každá možnosť poskytuje určité výhody, ale aj obmedzenia. Preto je len na používateľovi, ktorú možnosť si vyberie. Teraz sa však vráťme pár časti nášho seriálu naspäť. V 16. časti sme si vysvetľovali základnú tvorbu 2D grafov. Z tejto časti si požičiame príkazy na tvorbu jednoduchého grafu kvadratickej funkcie.
>> x=-2:0.1:2;
>> y=x.^2-1;
>> plot(x,y)
Prvou možnosťou ako otvoriť grafické prostredie pre nástroje grafov je využitie tlačidla z panelu nástrojov okna grafu a zatvoriť pomocou tlačidla . Po kliknutí sa okno grafu rozšíri o ďalšie tri časti:
- Figure Palette
- Plot Browser
- Property Editor
Ak by sa náhodou nejaká časť neobjavila, dajú sa vyvolať pomocou menu View. Tieto súčasti vieme zavolať aj pomocou príkazového riadku pomocou príkazov:
>> figurepalette
>> plotbrowser
>> propertyeditor
Figure Palette obsahuje tri panely. Panel New Subplots vytvára mriežku 2D alebo 3D osí. Používateľ jednoducho označí typ osí a potiahne cez mriežku požadovaný počet. Typ osí, ktoré už boli vytvorené predtým nemení. Tento panel je akýmsi ekvivalentom príkazu subplots. Panel Variables zobrazuje aktuálne premenné v pracovnom priestore (workspace). Dvojklikom na premennú otvoríme Variable Editor na úpravu premennej. Pravým klikom zase vyvoláme kontextové menu, v ktorom si môžeme zvoliť typ grafu pre premennú. Matlab podporuje funkciu Drag and Drop, takže môžeme premennú chytiť a priamo potiahnuť na požadovanú os. Ak by sme si nevedeli vybrať z odporúčaných grafických funkcií môžeme pomocou položky More Plots vyvolať katalóg grafov (The Plot Catalog Tool), ktorý obsahuje väčšinu funkcií na kreslenie grafov. Anotations panel obsahuje doplnkové objekty na popísanie grafu ako šípky, texty a iné.
Plot Browser zobrazuje zoznam všetkých osí a objektov (2D a 3D grafy). Kliknutím na položku Plot Browser-a sa označí zodpovedajúci objekt na grafe. Ak by sme chceli objekt dočasne z grafu odstrániť (spraviť neviditeľným) jednoducho ho odznačíme vo zodpovedajúcom check boxe. Plot Browser dovoľuje pridať nové dáta do zodpovedajúcej osi pomocou tlačidla Add Data. Tlačidlo vyvolá okno v ktorom si môžeme nadefinovať typ grafu a zodpovedajúce premenné z pracovného priestoru. Dovoľuje aj využitie Matlab-ových výrazov pre závislé dáta (napr. X ako premennú worspace a y ako výraz).
Property Editor umožňuje pristupovať ku vlastnostiam označených objektov. Objekt v grafe môžeme označiť kliknutím alebo už v spomínanom Plot Browser-i. Panel ponúka zmenu základných vlastností ako typ grafu, farbu, hrúbku čiar a ďalšie. Pomocou tlačidla More Properties vyvoláme Property Inspector, ktorý bol spomenutý v článku o objektoch.
Pokročilé nástroje grafov dokážeme vyvolať aj príkazom plottools. Tento príkaz si však pamätá poslednú zmenu v nástrojoch, preto nemusí vždy zobraziť všetky tri časti s panelmi. Graf môžeme rýchlo nakresliť aj pomocou hlavného okna Matlab-u, kde v časti Workspace má nasledovnú položku v menu . Označením premenných nám ponúkne výber vhodných grafov, prípadne sa vieme dostať do Plot Cataloge ako pri paneli Figure Palette – Variables. To isté platí aj pre pravý klik na označené premenné.
Príklad
Na záver tejto časti by sme si radi overili vaše znalosti, preto sme pripravili tento príklad. Pomocou pokročilých nástrojov grafov nakreslite graf, ktorý bude obsahovať nasledovné objekty. 2D graf funkcie (2) z článku 16 – 2D grafy. V tomto grafe zmente hrúbku, štýl čiary a označte šípkou lokálne minimum. Pie graf celkového predaja áut v SR z článku 17 – bar graph, pie chart. 3D graf a graf závitnice z článku 19 – 3D grafy. V diskusii pod článkom nám môžete dať vedieť ako ste s touto úlohou uspeli. Výsledný graf nájdete na nasledujúcom obrázku.
Na záver si ešte povieme pár užitočných vecí, ktoré by sa vám mohli hodiť. Matlab umožňuje exportovať nastavenia grafov ako samostatný M-File pomocou menu File – Generate M-File. Táto možnosť nám vytvorí funkciu s vlastnosťami grafu. Napríklad zmeníme hrúbku čiary v grafe a exportujeme ju do M-File:
function createfigure(X1, Y1)
%CREATEFIGURE(X1,Y1)
% X1: vector of x data
% Y1: vector of y data
% Auto-generated by MATLAB on 04-Feb-2010 21:50:44
% Create figure
figure1 = figure('XVisual',...
'0x24 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)',...
'PaperSize',[20.98 29.68]);
% Create axes
axes('Parent',figure1);
box('on');
hold('all');
% Create plot
plot(X1,Y1,'LineWidth',2);
Ako môžete vidieť pri exportovaní sa do funkcie neukladajú dáta. Tie vstupujú do funkcie ako argument. Preto je táto funkcionalita nepraktická pri veľkom počte grafov a subplot-ov. Grafy môžete samozrejme uložiť vo väčšine bežných grafických formátov (množina ponúkaných formátov je závislá od použitého operačného systému), exportovať s vlastnými nastaveniami alebo tlačiť. Tieto vlastnosti sú intuitívne preto ich nebudeme spomínať. V prípade záujmu bližšie detaily nájdete v užívateľskej príručke.