17. Matlab – bar graph, pie chart

02. Október, 2009, Autor článku: Foltin Martin, MATLAB/Comsol
Ročník 2, číslo 10 This page as PDF 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.

ML017_01
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.

ML017_02
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')

ML017_03
Obr. 3. Graf doplnený o popis

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')

ML017_04
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)

ML017_05
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')

ML017_06
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')

ML017_07
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')

ML017_08
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)

ML017_09
Obr. 9. 3D koláčový diagram

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

  1. Matlab 7 – Graphics, The MathWorks,
    http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/graphg.pdf, 24.9.2009
  2. Štatistiky predaja automobilov v SR, http://www.zapsr.sk/kategoria/Predaj-automobilov-v-SR/2009/ , 1.10.2009

2 príspevky(ov) k článku “17. Matlab – bar graph, pie chart”

  1. Roman Zmajkovic napísal:

    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

  2. Roman Zmajkovic napísal:

    *oprava spustenie Matlabu v tomto OS

Napísať príspevok