Osnovi grafike u MATLABu Lekcija 4 Branislav Vuksanovic
Osnovi grafike u MATLABu Lekcija 4 Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
U ovoj lekciji • Crtanje i označavanje dvodimenzionalnih grafova • Podešavanje izgleda vaših crteža • Upotreba “subplot” opcije • Trodimensionalni crteži • Interaktivni grafički alati Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Dvodimenzionalni crteži • “xy” je najčešće korišćen graf u tehnici • Nezavisna varijabla je obično x • Zavisna varijabla je y Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Primjer podataka za xy graf time, sec Distance, Ft 0 0 2 0. 33 4 4. 13 6 6. 29 8 6. 85 10 11. 19 12 13. 19 14 13. 96 16 16. 33 18 18. 17 Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013 Vrijeme (time) je nezavisna varijabla, udaljenost (distance) je zavisna varijable
Definirajte x i y i pozovite “plot” funkciju Umjesto x i y, obično se koriste imena koja odgovaraju problemu koji analiziramo Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Inžinjeri obično dodaju i … • Naslov • Ime za X osu, i jedinice • Ime za Y osu, i jedinice • često je korisno dodati i mrežu preko slike Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Više grafova na jednom crtežu • Svaki put kada izdate naredbu “plot” MATLAB briše postojeći crtež • Da bi se otvorila nova slika, koristi se funkcija “figure”, npr. figure(2) Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Crteži sa više grafova • hold on • Zadržava postojeći crtež tako da se novi graf moze crtati preko postojećeg • Kod ovog pristupa novi graf ce po definiciji biti nacrtan plavom bojom Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Ova krivulja je u plavoj boji Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
hold on komanda zadržava postojeći crtež Drugi crtež je takodjer nacrtan koristeći plavu boju hold off komanda prekida zadržavanje grafova na slici Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Jednom komandom je moguće istovremeno iscrtati više krivulja • Koristeći ovaj nacin, svaki graf je druge boje Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Svaki par varijabli u plot komandi će proizvesti novi graf. Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Varijacije • Ako “plot” komandi date matricu, MATLAB tretira vrijednosti u matrici kao y varijablu a index svakog elementa kao x varijablu • Matrice se obično crtaju koristeći “bar” komandu • Ako su pak nacrtane koristeći “plot” komandu, tj. kao xy graf, zovemo ih linijskih grafovima Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Ako želite nacrtati više setova y varijabli za ist x set … • Možete upotrijebiti “plot” komandu na sljedeći način • plot(x, y 1, x, y 2, x, y 3, x, y 4) • Ili sve y setove sačuvati u matricu pa onda upotrijebiti linijski graf za crtanje matrice • z=[y 1, y 2, y 3, y 4] • plot(x, z) Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Matrica Z sadrži sve setove y vrijednosti Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
peaks(100) instrukcija stvara 100 x 100 matricu čije se vrijednosti mogu prokazati pomoću “plot” funkcije koja daje 100 različitih grafova. Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Prikazivanje Kompleksnih Vektora i Matrica • Ako se kao ulazna vrijednost za plot komandu koristi matrica ili vektor čiji su elementi (svi ili neki od njih) kompleksne vrijednosti, MATLAB koristi realne vrijednosti kao x varijablu a imaginarne kao y varijablu. Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Dva vektora koji sadrže kompleksne brojeve • Ako kao ulazne vrijednosti plot funkcije upotrijebite dva vektora sa kompleksnim brojevima, imaginarni dijelovi ovih brojeva će biti ignorisani (realne vrijednosti prvog vektora će biti upotrijebljene kao vrijednosti na x-osi a realne vrijednosti drugog vektora kao vrijednosti y-osi) Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Linije, Boje i Simboli • Izgled grafova se može izmjeniti korišćenjem raznih • Vrsta linija • Boja • Simbola • Pokušajte help plot da saznate više Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Osnovne mogućnosti Line, Mark and Color Options Line Type Indicator Point Type Indicator Color Indicator solid - point . blue b dotted : circle o green g dash-dot -. x-mark x red r dashed -- plus + cyan c star * magenta m square s yellow y diamond d black k triangle down v triangle up ^ triangle left < triangle right > pentagram p for Engineers Branislav Vuksanovic – Matlab Politehnika Pula, Svibanj 2013 hexagram h
Izbor linije, boje i simbola se navodi kao dodatni (tekst) ulaz za plot komandu • Npr. plot(x, y, ': ok') • Tekst se označava jednostrukim navodnikom na početku (“ ’ ”) • Ako ne napravite izbor, MATLAB će upotrijebiti • Vrsta linije – puna • Boja – plava • Simbol se ne koristi Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
plot(x, y, ': ok') • U ovom primjeru • “: ” označava točkastu liniju • “o” označava krug kao simbol • slovo “k” označava crnu boju linije za graf Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
točkasta linija kružići crna boja Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Vrsta grafa se treba naznačiti nakon svakog para x i y varijabli, ako ih ima više u jednoj plot komandi Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Granične vrijednosti na osama • MATLAB automatski postavlja granice svake ose tako da sve vrijednosti jedne i druge varijable stanu na sliku • Drugačije granične vrijednosti se mogu specificirati koristeći axis komandu axis([xmin, xmax, ymin, ymax]) • Pokušajmo izmjeniti ove vrijednosti na slici koju smo upravo nacrtali Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Automatski dodjeljenje granične vrijednosti osa se mijenjaju koristeći axis funkciju Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Označavanje crteža • Crtežima se u MATLABu takodje mogu dodati • legenda • tekst • Crtežu osim toga treba svakako dodati i • naslov • oznake osa Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Bolje označavanje crteža Grčka slova se mogu koristiti pri označavanju crteža tako što se prije imena varijable stavi””. Na primjer: title(‘alpha beta gamma’) će proizvesti naslov: αβγ Za eksponent se koriste vitičaste zagrade title(‘x^{2}’) daje x 2 Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Izmjena teksta • Ove izmjene izgleda teksta su načinjene koristeći “Tex Markup Language” • Izkoristite Help u MATLABu da bi ste saznali više o ovome!! Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Subplot • subplot komandom se prozor u kome se crta može podijeliti na vise pod-prozora u kojima se mogu prikazati crtezi • subplot(m, n, p) broj red broj kolone broj slike (položaj) Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
subplot(2, 2, 1) 2 kolone 1 2 3 4 2 reda Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
2 reda i 1 kolona Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Druge vrste dvodimenzionalnih grafova • • • Polarni grafovi Logaritamski plotovi Bar grafovi Kružni grafovi Histogrami X-Y grafovi sa dvije y ose Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Polarni grafovi • Neke funkcije je lakše prikazati u polarnim nego u parvokutnim koordinatama • Npr, jednadžba kružnice je • y=sin(x) u polarnim koordinatama Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Logaritamski Grafovi • Logaritamska podjela (baza 10) se koristi • ako je raspon varijabli vrlo velik • ako se vrijednost varijable mijenja eksponencijalno. Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
• plot – obje ose su imaju linearnu skalu • semilogy – y-osa ima log 10 podjelu • semilogx – x-osa ima log 10 scale podjelu • loglog – obje ose imaju log 10 podjelu Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
x-y plot – linearna podjela na obje ose semilogx – log podjela na x osi semilogy – log podjela na y osi loglog – log podjela na obje ose Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Bar i Kružni Grafici • MATLAB posjeduje širok izbor bar i kružnih vrsta grafova • • • bar(x) – uspravni bar graf barh(x) – vodoravni bar graf bar 3(x) – 3 -D uspravni bar graf bar 3 h(x) – 3 -D vodoravni bar graf pie(x) – kružni dijagram pie 3(x) – 3 -D kružni dijagram Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Histogrami • Histogram je graf koji prikazuje distribuciju datih vrijednosti Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Po definiciji dijagram daje distribuciju u 10 karakteristič nih vrijednosti Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
X-Y Grafovi sa dvije Y ose • Ponekad je korisno prikazati dva x -y grafa na istoj slici. • Ako su y vrijednosti na ovim grafovima jako različite, onda je teško vidjeti kakav je odnos i zavisnost trendova prikazanih na ovim grafovima. Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
For example Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Najveća vrijednost odredjuje omjer slike • Teško je vidjeti kako se ponasa varijabla prikazana plavom linijom zbog velikih vrijednosti varijable prikazane zelenom linijom Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
plotyy funkcija dozvoljava upotrebu dviju skala na istoj slici Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Crtanje Funkcija • Umjesto konkretnih x i y vrijednosti u MATLABu je moguće upotrijebiti i funkciju u plot komandi, koristeci fplot instrukciju • fplot('sin(x)', [-2*pi, 2*pi]) Funkcija se mora definirati kao tekst Drugi argument su vrijednosti ili područje u kome se mijenja nezavisna varijabla – x u ovom slučaju Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Trodimenzionalni crteži • Linijski crteži • Crteži površina • Crteži kontura Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Trodimenzionalni linijski crteži • Ovi crteži zahtjevaju set od tri vrijednosti (x, y, z) z-osa se označava na isti način kao i x- i yose Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Orijentacija trodimenzionalnog koordinatnog sistema u MATLABu slijedi pravilo desne ruke Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Za zabavu • istražite comet 3 funkciju koja crta graf uz animaciju • comet 3(x, y, z) • Ako vam je animacija prespora dodajte još točaka • Za isti efekt kod dvodimenzionalnih grafova možete upotrijebiti comet funkciju Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Površinski crteži • Predstavljaju x-y-z vrijednosti kao površine • mesh - mrežasti crteži • surf – pune površine Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Mesh i Surf • Mogu se korsititi za predstavljanje dvodimenzionalnih matrica Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
x i y koordinate su indeksi elemenata matrice čije se vrijednosti onda tretiraju kao z koordinate Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Mesh sa 3 varijable • Ako znamo x i y vrijednosti koje odgovaraju z vrijednostima iz matrice, možemo njih upotrijebiti umjesto indeksa matrice kod crtanja Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Surf crteži • surf crteži su slični crtežima proizvedenim koristeći mesh komandu • Sintaksa im je identična • Resultat su ispunjene trodimensionalne površine umjesto mreža Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Trodimenzionalni efekti • Kod crtanja trodimenzionalnih objekata može se upotrijebiti par različitih načina osvjetljenja i sjena • shading interp • shading flat • faceted flat (osnovna) • Postoje i razne vrste paleta Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Palete (Colormaps) autumn spring summer winter bone colorcube cool copper hot hsv pink prism jet (osnovna) flag white Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Konture • “Contour” tip crteža koristi istu sintaksu kao i mesh i surf vrsta crteža • Ovi crteži podsjecaju na poznate mape krajolika koje koriste planinari Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Da bi demonstrirali ove funkcije poslužiti ćemo se primjerom • Pokušajmo izračunati z vrijednosti tako što ćemo prvo iskoristiti meshgrid funkciju da stvorimo dvodimenzionalnu matricu a onda ju upotrijebiti kao ulaznu vrijednost za izračunavanje z vrijednosti Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Pseudo Color Plots • Similar to contour plots • Instead of lines, a 2 -D shaded map is created • Uses the same syntax • The following example uses the built-in MATLAB demonstration function peaks Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Prepravljanje crteža koristeći opcije u meniju • Pored mogućnosti za izmjenu izgleda vaših crteža pomoću MATLAB komandi, crteže možete dalje prepravljati koristeći opcije u meniju prozora u kome se nalazi crtež • Da bi smo demonstrirali neke od mogućnosti iskoristiti ćemo još jednu MATLAB funkciju - sphere Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
• Pogledajmo što se može uciniti iz “insert” menija • Moguće je dodati oznake osa, legendu, naslov, i druge detalje Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Edit-> Axis U “Property Editor” -u se interaktivno može mijenjati velik broj svojstava kreiranog crteža Aspect Ratio Inspector Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
• Glavni nedostatak ovakvog načina mijenjanja crteža u MATLABu je nedostatak mogućnosti da zapamtite i ponovite ove prepravke na sljedećem setu rezultata Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Moguće je i crtanje iz radnog prostora Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
MATLAB predlaže mogućnosti za crtanje i kreira crtez bez potrebe za izdavanje komandi Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Spremanje crteža • Kada ste zadovoljni svojim crtežom možete ga spremiti koristeći meni opciju “save as…” • Crtež se može spremiti u jednom od ponudjenih formata • jpeg • emg (enhanced metafile) itd • Isto tako možete upotrijebiti desni dugme na mišu da kopirate figuru i onda ju ubacite u neki drugi dokument Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
Ukratko • x-y tip crteža se najčešće koristi u tehnici • Grafove uvijek treba označiti (ose i naslov) • MATLAB daje veliku mogućnost kontrole nad stvorenim crtežima Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
• Više crteža se može prikazati u istom prozoru • Neki od najčešćih vrsta MATLAB crteža • • polar bar pie chart histogrami Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
• MATLAB podržava i trodimenzionalne crteže • Linijski crteži • Površinski crteži • Crteži se mogu mijenjati interaktivno koristeći opcije iz menija • Crtanje takodje može biti interaktivno iz radnog prostora Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
• Crteži se mogu spremiti u nekoliko formata Branislav Vuksanovic – Matlab for Engineers Politehnika Pula, Svibanj 2013
- Slides: 87