17. Matlab – bar graph, pie chart
02. Október, 2009, Autor článku: Foltin Martin, MATLAB/Comsol
Ročník 2, číslo 10
Pridať príspevok
V 16. časti seriálu sme sa naučili kresliť jednoduché 2D grafy v prostredí Matlab. V 17. pokračovaní sa zameriame na iné typy 2D grafov. Sú občas nazývané aj diskrétne, nakoľko vyjadrujú hodnotu v istom diskrétnom okamihu. Často sa tieto typy grafov využívajú v ekonomických vedách. Jedná sa o stĺpcové grafy, alebo koláčový diagram (pie chart).
Najskôr si definujme dáta s ktorými budeme pracovať v príkladoch. Nech sa jedná o počet predaných áut v období január až máj v SR troch najpredávanejších značiek Škoda, Peugeot a Renault (tab. 1).
značka | Jan | Feb | Mar | Apr | Máj |
---|---|---|---|---|---|
Škoda | 628 | 777 | 1344 | 1299 | 1690 |
Renault | 277 | 415 | 603 | 594 | 951 |
Peugeot | 242 | 340 | 726 | 1224 | 795 |
Tab. 1. Predaj značiek Škoda, Renaul a Peugeot v SR za obdobie janár až máj
Dáta môžeme uložiť do matice P, kde stĺpce budú predstavovať značku a riadky mesiac.
>> P=[628 277 242;
777 415 340;
1344 603 726;
1299 594 1224;
1690 951 795];
Základným príkazom pre stĺpcový graf je bar.
Obr. 1. Zobrazenie predajnosti áut pomocou bar
Existujú aj odvodené príkazy, ktoré graf otočia do horizontálnej roviny a príkazy, ktoré dáta zobrazia v 3D. Jedná sa o príkazy : barh, bar3 a bar3h.
Obr. 2. Zobrazenie predajnosti áut pomocou bar3
S grafom je možné narábať a upravovať ho pomocou základných príkazov ktoré sme si vysvetlili v predošlej časti.
>> bar(P)
>> grid
>> xlabel('mesiac')
>> ylabel('pocet [ks.]')
>> legend('Skoda','Renault','Peugeot')
>> title('Predaj aut v SR')
Zmena farieb, alebo typu ohraničenia stĺpcov je možná, avšak vyžaduje si znalosti z objektového spracovania grafov. Táto téma bude rozobratá v ďalších častiach. Jednou z možností ako modifikovať graf typu bar, bez toho aby sme museli zasahovať do jeho objektových vlastností je prepínač stack. Týmto prepínačom docielime, že jednotlivé hodnoty sa zobrazia na seba a teda výsledný stĺpec bude súčtom všetkých dielčich hodnôt. V našom príklade teda pôjde o sumár predaja značiek Škoda, Renaul a Peugeot.
>> bar(P,'stack')
Obr. 4. Využitie prepínača stack
V uvedenom príklade sme zobrazovali dáta v prvých 5 mesiacoch roka 2009. Nemali sme teda potrebu meniť x-ovú os a jej automatická voľba nám vyhovovala. Ak by sme ju ale potrebovali meniť, tak jej hodnoty môžeme vkladať ako ďalší parameter. Jedná sa o rovnaký prístup ako v príkaze plot, kde absencia vektora závislej premennej spôsobí automatické nahradenie. Ako príklad môže slúžiť predajnosť uvedených značiek v mesiacoch jún, júl, august.
značka | Jún | Júl | Aug |
---|---|---|---|
Škoda | 2235 | 1861 | 986 |
Renault | 1346 | 1606 | 1513 |
Peugeot | 1018 | 742 | 416 |
Tab. 2. Predaj značiek Škoda, Renault a Peugeot v SR za obdobie jún až august
>> P2=[2235 1346 1018;1861 1606 742;986 1513 416];
>> obdobie=[6 7 8];
>> bar(obdobie,P2)
Obr. 5. Definovanie x-ovej osy v bar grafe
Iný spôsob zobrazenia dát ponúka graf typu plocha – area. Syntax príkazu area je rovnaká ako príkaz bar.
>> area([P ; P2])
>> grid
>> xlabel('mesiac')
>> ylabel('pocet [ks.]')
>> legend('Skoda','Renault','Peugeot')
>> title('Predaj aut v SR')
Obr. 6. Predajnosť áut v SR za obdobie január až august zobrazená pomocou grafu area
Dosiahnuté predajné výsledky je možné zobraziť aj v koláčovom diagrame. Na to, ale aby diagram mal logiku, musíme poznať celkové predaje áut v uvažovanom období.
značka | Jan | Feb | Mar | Apr | Máj | Jún | Júl | Aug |
---|---|---|---|---|---|---|---|---|
celkovo | 3992 | 4494 | 7698 | 10902 | 9592 | 11509 | 11210 | 7381 |
Tab. 3. Celkové predaje osobných áut v SR
Do spracúvaných údajov musíme doplniť položku ostatné, ktorá predstavuje súčet všetkých ostatných značiek na trhu. To dosiahneme tak, že od celkového počtu odčítame sumu predaja uvedených troch značiek. Najskôr však zlúčme predaje z obdobia reprezentovaného premennou P a P2.
>> P=[P ostatne];
Podiel na trhu značiek v sumárnom období január až august zobrazíme pomocou príkazu pie.
>> pie(sum(P))
>> legend('Skoda','Renault','Peugeot','ostatne')
Obr. 7. Celkové predaje áut v SR
Aj koláčový diagram je možné mierne modifikovať. Dá sa zvýrazniť niektorá časť tým, že ju vysunieme mierne mimo graf. Slúži na to druhý parameter v príkaze pie. Druhý parameter reprezentuje vektor rovnakej dĺžky ako je počet zobrazovaných hodnôt. Ak na príslušné miesto dáme nenulovú hodnotu, tak daná položka grafu bude vysunutá. Ak by sme teda chceli zvýrazniť predaje značky Renault (reprezentovaný druhým číslom vstupného vektora), tak druhý parameter nastavíme takto :
>> posun=[0 1 0 0];
>> pie(sum(P),posun)
>> legend('Skoda','Renault','Peugeot','ostatne')
Obr. 8. Zvýraznenie vybranej položky z grafu
Matlab obsahuje aj modifikáciu príkazu pie. Je to príkaz pie3. Výsledkom použitia príkazu pie3 je graf, ktorý reprezentuje rovnaké výsledky ako príkaz pie. Zobrazenie v 3D však môže byť v istých situáciách efektnejšie.
>> pie3(sum(P),posun)
Všetky uvedené obrázky je možné ešte dodatočne modifikovať pomocou zmien vlastností objektov. Vyjasnili sme si možnosti využitia Matlabu v zobrazovaní a prezentovaní obchodných výsledkov.
Literatúra
- Matlab 7 – Graphics, The MathWorks,
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/graphg.pdf, 24.9.2009 - Štatistiky predaja automobilov v SR, http://www.zapsr.sk/kategoria/Predaj-automobilov-v-SR/2009/ , 1.10.2009
02. November, 2012 o 20:06
Dobry den vidim ze mate okna z prostredia Macu , chcel by som sa spytat ako ste riesili spustenie macu v tomto OS alebo aky nahradny program ste pouzili? Prosim odpiste na zmajkovic.roman@gmail.com. Dakujem
02. November, 2012 o 20:07
*oprava spustenie Matlabu v tomto OS