Keerulisemad graafikud

Antud õpiobjektis kirjeldatud lihtsatest graafikutest on kindlasti palju abi, ent päris mitmed graafikutüübid, mida me seni veel vaadelnud ei ole, on samuti küllalt sageli kasulikud.

Esimene ja lihtsaim on funktsiooni pairs abil saadav hajuvusgraafikute kogum. Nimelt ootab funktsioon argumendina andmemaatriksit, ning väljastab kõikvõimalikud kahe tunnuse vahelised hajuvusgraafikud

> pairs(andmed1)


Kasulikuks võib osutuda ka funktsioon interaction.plot, mis võimaldab visualiseerida koosmõju olemasolu (või selle puudumist). Esimene tunnus (faktor) määrab horisontaalteljel kuvatavad klassid, teise tunnuse (samuti faktor) põhjal tekitatakse kuvatavad jooned ning kolmas tunnus (arvuline) on see, mille põhjal joonistatakse vertikaaltelg. Graafikul kuvatakse niisiis kolmanda tunnuse keskmised arvutatuna iga võimaliku faktorite väärtuste kombinatsioonide jaoks.

> interaction.plot(andmed1$grupp,andmed1$toit,andmed1$pikkus)

Vahel langeb graafikul mitu punkti täpselt samale kohale. Graafikule peale vaadates ei paista see aga kuidagi välja. Üks võimalus sellest mööda hiilida on kõiki punkte mingi väikese juhusliku nihke ulatuses liigutada, ent veelgi kavalama lahenduse pakub funktsioon sunflowerplot: iga korduse peale lisatakse õiele üks leht. Nii näiteks

> a=rep(1:10,each=10)
> b=sample(1:5,100,replace=T)

> sunflowerplot(a,b)

Kolmemõõtmelisi andmeid saab edasi anda näiteks punktide värvimise teel, ent võime ka kasutada samakõrgusjooni. Selle realiseerib funktsioon contour, mille esimene argument määrab risttelje koordinaadid, teine püsttelje koordinaadid ning kolmas on maatriks, kus tunnuse väärtus vastavatel koordinaatidel. Oluline on, et esimesed kaks argumenti peavad olema mittekahanevalt järjestatud.

> a=1:10
> b=1:10
> c=(1:10)%*%t(1:10)
> contour(a,b,c)

Päris kolmemõõtmelist graafikut joonistab analoogiliste sisenditega funktsioon persp.

Üks vahel joonistamist hõlbustav funktsioon on ka matplot, millel on kaks võimalikku kasutust. Kui anname sisendina vaid ühe maatriksi, siis kujutatakse kõik selle veerud eraldi tunnustena (kusjuures eeldatakse, et mõõtmised on toimunud võrdsete vahemike tagant).

> matplot(c,type="l")


Keerulisemal juhul annab esimene maatriks rõhttelje ja teine maatriks püsttelje koordinaadi. See on üks viis kujutada näiteks mingite objektide liikumist.

> a=matrix(rnorm(50),nrow=25)
> a=apply(rbind(c(0,0),a),2,cumsum)
> b=matrix(rnorm(50,0.1),nrow=25)
> b=apply(rbind(c(0,0),b),2,cumsum)
> matplot(a,b,type="l")

Vajalikud võivad olla ka tuumameetodil tihedust hindav funktsioon density (millel on olemas ka vastav plot funktsioon). Kvantiil-kvantiilgraafikut võimaldab joonistada funktsiooni qqplot väljund.

Lihtsat viisi joonistada graafikuid objektide kaupa (s.o. mingi tunnuse järgi grupeerides) pakub pakett lattice. Küllalt laialt kasutatakse ka paketti ggplot2, mis koondab paljud erinevat tüüpi graafikud ühe ja sama funktsiooninime alla ning hõlbustab kohati keerukamate graafikute joonistamist.

Lõpetuseks veel üks hüperlink, kust võib leida palju erinevat tüüpi graafikuid ja ka vajalikud käsud nende joonistamiseks: http://addictedtor.free.fr/graphiques/thumbs.php?sort=votes