4. nodaļa. Grafiskās iespējas programmā R

Programmā R ir iespējams veidot ļoti augstas kvalitātes grafikus, kuriem ir iespējams definēt jebkuru no interesējošiem parametriem. Grafiku veidošanai ir pieejamas vairākas grafiskās sistēmas, no kurām populārās trīs ir:

  • Tradicionālie grafiki (Murrell 2006)
  • Trellis jeb Lattice grafiki (Sarkar 2008)
  • ggplot2 grafiki (Wicham 2009)

Šajā grāmatā apskatīti tikai tradicionālo grafiku veidošana.

4.1 Pamatgrafiki

Grafikus līdzīgi kā jebkuras citas darbības programmā R veic ar komandu rindām. Ir pieejamas funkcijas, kas izveido jau nodefinētu grafika veidu, vai arī var izveidot grafiku izmantojot atsevišķas funkcijas dažādu parametru definēšanai.

R specifika ir tā, ka, izveidojot grafiku, parādās grafiskais logs, kurā ir attēlots konkrētais grafiks. Ja tiek izsaukta jauna funkcija, kas arī veido grafiku, iepriekšējais grafiks tiek aizstāts. Ja ir nepieciešams, ka uz ekrāna vienlaicīgi ir redzami vairāki grafiki, tad pirms katra jauan grafika ir jāraksta funkcija windows() (Windows vidē) vai quartz() (MacOS vidē).

Lai veidotu grafiku, ir nepieciešami dati. Šajā nodaļā kā piemērs izmantots datu fails niedres.txt, kas satur informāciju par 50 niedru lapu garumu un platumu. Ar funkciju read.table() fails tiek importēts, pēc tam funkciju str() apskatīta tā struktūra.

niedres<-read.table(file="niedres.txt",header=T,sep="\t",dec=".")
str(niedres)
## 'data.frame':    50 obs. of  2 variables:
##  $ garums : num  31.6 23.2 39.2 37.4 21.1 37 24.7 31.3 37.4 39.7 ...
##  $ platums: num  2.5 2.3 2.1 5.8 2.2 4.1 3.5 4.2 2.5 2.8 ...

4.1.1 plot()

Visbiežāk pielietotā funkcija grafiku veidošanai ir plot(). Ja šajā funkcijā norāda vienu vai divas skaitļu rindas, tad tā veido izkliedes grafiku (scatterplot) (4.1 attēls). Šai funkcijai ir iespējams norādīt ļoti daudz papildus argumentus, kas maina izveidoto grafiku. Turklāt liekot šajā funkcijā atšķirīgus datus objektu, var iegūt ļoti atšķirīgu rezultātu.

plot(niedres$platums)
Izkliedes grafika piemērs

Figure 4.1: Izkliedes grafika piemērs

4.1.2 boxplot()

Funkcija boxplot() izveido Box-plot grafiku (4.2 attēls). Šai funkcijai var norādīt vienu datu rindu, kas satur skaitļus, vai arī divas datu rindas, kur vienā ir skaiļi, bet otrā ir apzīmējumi dalījuma līmeņiem. Otrajā gadījumā attsevišķš Box-plot grafiks tiks izveidots katram no dalījuma līmeņiem.

boxplot(niedres$platums)
Box-plot grafika piemērs

Figure 4.2: Box-plot grafika piemērs

4.1.3 hist()

Ar funkcijas hist() palīdzību ir iespējams izveidot histogrammu datiem, kas vēl nav sagarupēti klasēs (izejas datiem) (4.3 attēls). Šajā funkcijā ir jānorāda tikai viena datu rinda, kuru ir nepieciešams attēlot. Ar papildus argumentiem ir iespējams mainīt to, cik daļās dati tiek dalīti.

hist(niedres$platums)
Histogrammas piemērs

Figure 4.3: Histogrammas piemērs

4.1.4 barplot()

Funkcija barplot() veido slokšņu jeb stabiņu grafiku (4.4 attēls). Šī funkcija ir īpaši noderīga gadījumā, ja dati jau ir apkopoti pa klasēm, jo funkcija attēlo datus tādā veidā kā tie norādīti mainīgajā.

barplot(niedres$platums)
Slokšņu/stabiņu grafika piemērs

Figure 4.4: Slokšņu/stabiņu grafika piemērs

4.2 Dati grafiku veidošanai

Lai veidotu grafikus, esošos datus no gatavām datu tabulām nav jāsaglabā kā atsevišķus mainīgos -tos uzreiz var izmantot grafiku veidošanai. Ir vismaz trīs dažādi veidi kā norādīt attēlojamos mainīgos: (a) norādot pilnu datu objektu nosaukumu un tad kolonnas nosaukumu, kuru vēlas attēlot; (b) grafika veidošanas funkciju likt kā argumentu funkcijai with(). Visos šajos gadījumos izveidosies līdzīgs attēls (4.1 attēls), var atšķirties tikai paraksti zem asīm.

plot(niedres$platums)
with(niedres,plot(platums))

Ja ir nepieciešams uz x un y ass attēlot divu mainīgo datus, tad ir divi iespējamie risinājumi: (a) kā pirmo argumentu raksta uz x ass attēlojamo mainīgo, tad komats un uz y ass attēlojamais mainīgais; (b) kā pirmo raksta uz y ass attēlojamo mainīgo, tad tildes zīme ~ un uz x ass attēlojamais mainīgais. Abi varianti izveido identisku grafiku (4.5 attēls).

plot(niedres$platums,niedres$garums)
Grafiks ar diviem mainīgajiem

Figure 4.5: Grafiks ar diviem mainīgajiem

plot(niedres$garums~niedres$platums)
Grafiks ar diviem mainīgajiem

Figure 4.6: Grafiks ar diviem mainīgajiem

4.3 Grafiku parametru noteikšana

Programmā R grafikiem mainīt paramtrus var divos veidos – izmantojot speciālu funkciju par() vai arī rakstot argumentus iekavās pie citām grafiku veidošanas funkcijām. Funkciju par() lieto, lai noteiktu parametrus, kas ietekmē visus turpmākos grafikus, kāmēr konkrētais grafiskais ekrāns vai vide ir atvērta. Šī funkcija ir jāizsauc kā pirmā pirms grafika veidošanas funkcijas izsaukšanas. Daļu no parametriem var noteikt tikai kopā ar funkciju par().

4.3.1 Grafiku izvietojums lapā

R piedāvā iespēju izvietot vienā lapā vairākus attēlus, kas tiek panākts izmantojot argumentus mfrow=, mfcol kopā ar funkciju par(), vai arī izmantojot unkciju layout(). Visi šie argumenti vai funkcija ir jānodefinē pirms grafiku funkcijām, kā arī jāņem vērā tas, ka šīs funkcijas zaudē spēku, ja tiek izmantota funkcija dev.off() vai arī grafiku logs tiek aizvērts.

Argumenti mfrow= un mfcol= tiek izmantoti kopā ar funkciju par(), pēc sekojoša principa par(mfrow=c(rinduskaits,kolonnuskaits)). mfrow= un mfcol= atšķirība ir tā, ka pirmajā gadījumā grafiki tiek aizpildīta pēc rindu principa (pirmā rinda, tad otrā rinda), bet otrajā gadījumā aizpilda pēc kolonnu principa (pirmā kolonna, tad otrā kolonna).

Funkcija layout() strādā pēc līdzīga principa (4.7 attēls), tikai šajā gadījumā ir iespējams nodefinēt kādā secībā grafiki izvietosies – secīgi vai jauktā veidā, kā arī ar šo funkciju iespējams nodefinēt arī izmērus katram no atsevišķajiem grafikiem. Zemāk minētajā piemērā visas trīs pirmās rindas dod vienādu rezultātu (reāli jāizmanto tikai viena).

par(mfrow=c(2,2))
par(mfcol=c(2,2))
layout(matrix(c(1,2,3,4),ncol=2))
plot(niedres$garums)
hist(niedres$garums)
boxplot(niedres$garums)
barplot(niedres$garums)
Vairāku grafiku izvietojums vienā lapā

Figure 4.7: Vairāku grafiku izvietojums vienā lapā

Ja funkcijā layout() kāds no skaitļiem tiek atkārtots, tad grafiks tiks izvietot nevis vienā “rūtiņā”, bet gan divās, kāmēr pārējie grafiki izvietosies vienā rūtiņā (4.8 attēls).

layout(matrix(c(1,1,2,3),ncol=2))
plot(niedres$garums)
hist(niedres$garums)
boxplot(niedres$garums)
Vairāku grafiku izvietojums vienā lapā

Figure 4.8: Vairāku grafiku izvietojums vienā lapā

4.3.2 plot() grafiku tipi

Pēc noklusējuma funkcija plot() veido izkliedes grafiku, bet to ir iespējams mainīt norādot papildus argumentu type= iekavās pie šīs funkcijas. Rezultātā var iegūt sešus dažādus grafiku veidus (4.9 attēls).

par(mfrow=c(2,3))
plot(niedres$garums,type="l",main="type=\"l\"")
plot(niedres$garums,type="h",main="type=\"h\"")
plot(niedres$garums,type="b",main="type=\"b\"")
plot(niedres$garums,type="o",main="type=\"o\"")
plot(niedres$garums,type="s",main="type=\"s\"")
plot(niedres$garums,type="p",main="type=\"p\"")
Funkcijas plot() grafiku veidi

Figure 4.9: Funkcijas plot() grafiku veidi

4.3.3 Līniju parametri

Līnijām, kas tiek attēlotas grafikos, ir iespējams nodefinēt vairākus parametrus. Tas tiek panākts ar atsevišķiem argumentiem, kurus lieto kopā ar funkcijām grafika izveidošanai. Pirmais no parametriem, kuru var mainīt, ir līnijas veids. To dara ar argumentu lty=, norādot skaitli no 0 līdz 6 (bez pēdiņām), vai arī lietojot līnijas veida anglisko nosaukumu (attiecīgi “blank”,“solid”, “dashed”, “dotted”, “dotdash”, “longdash”, “twodash”). Ir iespējams nodefinēt arī savu līnijas veidu - pēdiņās aiz lty= jāraksta skaitļi, kur attiecīgi pirmais skaitlis apzīmē līnijas garumu un otrais skaitlis atstarpes garumu (4.10 attēls). Šaja piemērā funkcija lines() tiek izmantota, lai grafikam pievienotu papildus līnijas. Funkcija ir lietojama tikai tad, ja pamatgrafiks jau ir izveidots.

x<-rep(10,10)
plot(x,type="l",lty=1,ylim=c(3,11),axes=F,ann=F,lwd=2)
lines(x-1,lty=2,lwd=2)
lines(x-2,lty=3,lwd=2)
lines(x-3,lty=4,lwd=2)
lines(x-4,lty=5,lwd=2)
lines(x-5,lty=6,lwd=2)
lines(x-6,lty="664422",lwd=2)
box()
Iespējamie līniju tipi grafikos

Figure 4.10: Iespējamie līniju tipi grafikos

Lai noteiktu līniju platumu, lieto argumentu lwd=, norādot līnijas biezumu kā skaitli. Līnijas platums būs atkarīgs no tā, kur grafiks tiks attēlots, tas ir, ja grafiku apskatīsies uz ekrāna vai eksportēsiet kā failu, līniju platums var atšķirties.

Ar argumentu lend= nosaka kāds būs līnijas nobeigums: apaļš ("round") vai taisns ("square"" vai "butt"). Arguments ljoin= nosaka kādā veidā līnijas savienojas savā starpā (ja ir lauzta līnija). Savienojums var būt punktveida ("mitre"), apaļš ("round") un ass leņķis ("bevel"). Attēlā 4.11 var sekot tam, kā mainās līnijas izskats, mainot dažādus tās parametrus (platumu, veidu, savienojumu vietas).

layout(matrix(c(1,3,5,2,4,5),ncol=2))
plot(niedres$garums,type="l")
plot(niedres$garums,type="l",lty=4)
plot(niedres$garums,type="l",lty=4,lwd=12)
plot(niedres$garums,type="l",lty=4,lwd=12,lend="butt")
plot(niedres$garums,type="l",lty=4,lwd=12,lend="butt",ljoin="bevel")
Līnijas izmaiņas, mainot dažādus parametrus

Figure 4.11: Līnijas izmaiņas, mainot dažādus parametrus

4.3.4 Simbolu veidi

Tradicionālajiem grafikiem ir pieejami 26 iepriekš nodefinēti simbolu veidi datu attēlošanai, kurus var mainīt izmantojot argumentu pch= un norādot skaitli no 0 līdz 25 (4.12 attēls). Papildus ir iespējams norādīt arī burtus vai citus simbolus, tos liekot pēdīņās aiz argumenta pch=.

par(mar=c(2,2,1,1))
layout(matrix(1:9,ncol=3))
x<-rnorm(10)
plot(x,ann=F)
plot(x,pch=0,ann=F)
plot(x,pch=5,ann=F)
plot(x,pch=8,ann=F)
plot(x,pch=12,ann=F)
plot(x,pch=17,ann=F)
plot(x,pch=23,ann=F)
plot(x,pch=".",ann=F)
plot(x,pch="A",ann=F)
Simbolu veidi

Figure 4.12: Simbolu veidi

4.3.5 Virsraksti un teksti pie asīm

Virsrakstus un tekstus pie asīm var noteikt gan ar argumentiem, gan ar atsevišķām funkcijām. Kā argumenti (piemēram, funkcijai plot()) nāk xlab= (izveido parakstu zem x ass), ylab= (izveido parakstu zem y ass) un main= (izveido virsrakstu), aiz vienādības zīmes pēdiņās rakstot atbilstošo tekstu (4.13 attēls).

plot(niedres$garums,main="Parasta niedre",xlab="Kartas skaitlis",
     ylab="Lapas garums (cm)")
Grafiks, kuram teksti definēti kā argumenti

Figure 4.13: Grafiks, kuram teksti definēti kā argumenti

Lai varētu ietekmēt vairāk parametrus, tekstus var norādīt arī ar atsevišķām funkcijām, bet šajā gadījumā, piemēram, pie plot() funkcijas jānorāda arguments ann=FALSE, lai programma pati neveidotu parakstus zem asīm.

Virsrakstu definē ar funkciju title(), kur pēdiņās raksta nepieciešamo tekstu.

Vispārīgā gadījumā tekstus pie asīm nosaka ar funkciju mtext("ko gribam redzēt", side=kurā.pusē, line=kurā.līnijā). Izvietojums (puse) atbilst asu izvietojumam (1 - x ass, 2 - y ass, 3 - augšējā ass, 4 - otrā y ass), teksta līnijas rēķina attiecībā pret asīm, tas ir, ja norādīs line=1, tad teksts būs pie pašas ass un, jo lielāks skaitlis, jo tālāk no ass atradīsies teksts (4.14 attēls).

plot(niedres$garums,ann=FALSE)
title("Parasta niedre")
mtext("Kartas skaitlis",side=1,line=1)
mtext("Lapas garums (cm)",side=2,line=3)
Grafiks, kuram teksti definēti kā atsevišķas funkcijas

Figure 4.14: Grafiks, kuram teksti definēti kā atsevišķas funkcijas

4.3.6 Teksts grafika iekšienē

a nepieciešams izvietot tekstu grafika iekšienē, ir jāizmanto funkcija text(). Šai funkcijai kā argumentus jānorāda x un y koordinātes (atbilstoši asu skalām), kur jānovieto teksts un jānorāda pats teksts, kuru vēlas ievietot. Ir jāņem vērā, ka pēc noklusējuma teksts tiks izveitots tā, ka norādītās koordinātes ir teksts viduspunkts. Lai to mainītu, ir jānorāda papildus arguments pos= ar iespējamām vērtībām: 1 - teksts atrodas zem šī punkta; 2 - teksts atrodas pa kreisi no šī punkta; 3 - teksts atrodas virs šī punkta; 4 - teksts atrodas pa labi no šī punkta. Ja tekstam vajag mainīt orientāciju (lai tas nebūtu novietots horizontāli), jāizmanto papildus arguments srt=, kuram jānorāda teksta novietojums grādos.

Piemērā grafikā (4.15 attēls) ir izvietoti divi uzraksti: "pirmais" - bez papildus argumentiem; "otrais" - novietots virs koordināšu punkta un 25 grādu slīpumā.

plot(niedres$garums)
text(20,20,"pirmais")
text(40,40,"otrais",pos=3,srt=25)
Tekstu novietojuma piemērs

Figure 4.15: Tekstu novietojuma piemērs

4.3.7 Tekstu parametri

Tekstam var definēt dažādus parametrus, no kuriem svarīgākie būtu fonts, fontu grupa un burtu izmērs. Nosakot fontu, jānosaka kādai fontu grupai tas piederēs ar argumentu family=. Fontu grupas ir, piemēram, "mono", "serif", "sans". Fontu tipu nosaka ar argumentu font= ar iespējamo vērību no 1 līdz 5, kur 1 apzīmē parastus burtus, 2 - bold, 3 - italic, 4 – bold italic un 5 - simboli. Argumentu family= var lietot tikai kopā ar funkciju par(), bet font= var izmantot kopā arī ar citām funkcijām. Lai definētu fonta tipu asīm, asu parakstiem un virsrakstiem, attiecīgi var lietot argumentus font.axis=, font.lab= un font.main=.

Burtu izmēru var noteikt ar diviem argmentiem ps= un cex=. Arguments ps= nosaka absolūto burtu izmēru punktos. cex= nosaka relatīvo burtu izmēru, piemēram, cex=1.5 nozīmēs, ka burtiem ir jābūt 1.5 reizes lielākiem nekā ir standarta izmēra burti. ps= lieto tikai kopā ar par(), bet cex= var izmantot kopā arī ar citām funkcijām. cex.axis=, cex.lab= un cex.main= attiecīgi izmanto, lai apzīmētu asu simbolu, asu parakstu un virsrakstu relatīvo izmēru.

Piemērā (4.16 attēls) ir izmainīti izmēri virsrakstiem, parakstiem un skaitļiem pie asīm, kā arī katram no šiem parametriem ir izmantots cits fonta tips.

plot(niedres$garums,main="Parasta niedre",xlab="Kartas skaitlis",
     ylab="Lapas garums (cm)",cex.main=3,cex.lab=1.5,cex.axis=0.8,
     font.main=3,font.axis=4,font.lab=2)
Teksta parametru izmaiņas

Figure 4.16: Teksta parametru izmaiņas

4.3.8 Asis

Ja ir nepieciešams noteikt asu garumu (to ierobežojot kādā intervālā, vai arī tieši otrādi - padarot asi garāku, nekā tā tiek automātiski veidota) (4.17 attēls), var izmantot argumentus xlim= un ylim=, ko lieto, piemēram, ar funkciju plot(). Abiem argumentiem pieraksts ir vienāds xlim=c(sākuma.vērtība,beigu.vērtība).

par(mfcol=c(1,2))
plot(niedres$garums)
plot(niedres$garums,xlim=c(10,40),ylim=c(-10,80))
Asu garuma izmaiņu piemērs

Figure 4.17: Asu garuma izmaiņu piemērs

Ja grib ietekmēt vairākus ass parametrus, tad jāizmanto funkcija axis(), bet pirms tam, piemēram, kā arguments pie plot(), jāraksta axes=FALSE, lai programma automātiski pati neveidotu asis. Funkcijas pieraksts ir axis(kura.ass, at=seq(sākuma.vērtība,beigu.vērtība,intervāls), labels=c(ko.attēlot)).

Asu numerācija ir sekojošā: apakšējā ir 1, kreisā ir 2, augšējā 3 un labā ir 4. Ja argumentu labels= nenorāda, tad tiek attēloti tie paši skaitļi, kas ir pie argumenta at=. Ar argumentu las= var mainīt skaitļu/tekstu novietojumu pie ass, kur 0 nozīmē parallēls asij, 1 - horizontāls, 2 - perpendikulārs asij, 3 - vertikāls.

Piemērā (4.18 attēls) x asij nodefinēts, ka skaitļiem pie ass jābūt no 0 ik pēc 15, toties y asij pie skaitļiem 20, 40 un 60 ir jāparādas tekstam, nevis skaitļiem.

par(mfcol=c(1,2))
plot(niedres$garums)
plot(niedres$garums,axes=FALSE)
axis(1,at=seq(0,50,15),las=2)
axis(2,at=c(20,40,60),labels=c("aa","bb","cc"),las=1)
box()
Asu definēšanas piemērs

Figure 4.18: Asu definēšanas piemērs

4.3.9 Divas y asis

Lai arī daļa speciālistu atzīst, ka grafiki ar y asīm nav labi, reizēm tādus ir nepieciešamas izveidot. Pirmkārt, ar funkciju par() un argumentu mar= jāizmaina malu izmēri, lai otrai y asij būtu vietas. Pēc tam jāuzzīmē pamatgrafiks, aiz kura nāk funkcija par(new=TRUE), kas ļauj pa “virsu” zīmēt otru grafiku. Otrajam grafikam jālieto argumenti axes=FALSE un ann=FALSE, lai apzīmējumi nepārklātos. Tālāk jau ar funkcijām axis() un mtext() iegūst vēlamos apzīmējumus pie atbilstošās ass (4.19 attēls).

par(mar=c(5,5,2,5))
plot(niedres$garums,type="l")
par(new=TRUE)
plot(niedres$platums,type="l",lty=3,axes=FALSE,ann=FALSE)
axis(4,at=seq(0,8,2))
mtext(side=4,line=2,"platums")
Grafiks ar divām y asīm

Figure 4.19: Grafiks ar divām y asīm

4.3.10 Krāsas

Ir iespējams mainīt krāsas visām grafika sastāvdaļām, izmantojot dažādus argumentus (4.20 attēls). Šos argumentus var rakstīt kā daļu no funkcijas par() un šajā gadījumā krāsas būs noteiktas visiem grafikiem, vai arī lietot kā daļu, piemēram, no funkcijas plot() un šajā gadījumā krāsas mainīsies tikai konkrētajam grafikam. Vieglākais veids kā apzīmēt krāsu, ir lietot tās anglisko nosaukumu, piemēram, "red" vai "darkgreen". Lai redzētu visu pieejamo krāsu nosaukumus, jāraksta komanda colors().

Pamatā ir trīs argumenti krāsu maiņai: col=, bg= un fg=. col="krāsas.nosaukums" ir visbiežāk lietotais krāsas parametrs, ar kuru pārsvarā tiek noteikta datu simbolu, līniju, tekstu un citu sastāvdaļu, kas atrodas grafikā krāsa. Lai noteiktu asu, asu parakstu, virsrakstu un apakšvirsrakstu krāsas, jālieto attiecīgi argumenti col.axis=, col.lab=, col.main= un col.sub=. fg="krāsas.nosaukums" izmanto, lai mainītu asu un grafika malu krāsu, un daļēji tas sakrīt ar col.axis= un col.main= argumentiem. bg="krāsas.nosaukums" nosaka fona krāsu, šo argumentu var lietot kopā tikai ar funkciju par().

par(bg="lightblue")
plot(niedres$garums,fg="red",main="Slikts grafiks",
     col.main="green",col.axis="yellow")
Krāsu izmantošanas piemērs

Figure 4.20: Krāsu izmantošanas piemērs

4.3.11 Leģenda

Tradicionālajiem grafikiem leģendas programmā R veido ar atsevišķu funkciju legend(). Leģenda parasti ir novietota grafika iekšējā daļā (4.21 attēls). Dotajai funkcijai kā argumentus jānorāda: (a) leģendas novietojums - to nosaka ar x un y koordināti leģendas rāmīša augšējam kreisajam stūrim (koordinātes nosaka atbilstoši asu vērtībām, piemēram, ja uz x ass vērtības ir robežās no 5 līdz 10, bet uz y ass no 100 līdz 200, tad leģenas koordināte varētu būt 6 un 125); (b) nosaukumi, kuriem jāparādās leģendā; (c) datu simbolu/līniju veidu apzīmējumi (tiem ir jāsakrīt ar apzīmējumiem, kas izmantoti, lai definētu grafiku).

par(mar=c(5,5,2,5))
plot(niedres$garums,type="l")
par(new=TRUE)
plot(niedres$platums,type="l",lty=3,axes=FALSE,ann=FALSE)
axis(4,at=seq(0,8,2))
mtext(side=4,line=2,"platums")
legend(0,7,lty=c(1,3),c("garums","platums"))
Grafiks ar leģendu

Figure 4.21: Grafiks ar leģendu

4.3.12 Līnijas grafikos

Ja grafikā ir nepieciešams izvietot taisnu līniju, var izmantot funkciju abline(). Ja ir nepieciešams uzzīmēt slīpu līniju, tad ir jānorāda divi skaitļi, kas attiecīgi norāda puktu, kurā līnija krusto x asi un līnijas slīpumu (intercept), vai arī jāizmanto papildus funkcija lm(), kas izveidos regresijas līkni grafikā attēlotajiem mainīgajiem (4.22 attēls). Ja nepieciešams izveidot horizontālas līnijas, tad jānorāda arguments h= un vērtības (viena vai vairākas), kurās vietās horizontālās līnijas krustos y asi. Attiecīgi vertikālām līnijām ir jānorāda arguments v=.

plot(niedres$garums~niedres$platums)
abline(lm(niedres$garums~niedres$platums))
abline(h=c(30,40),lty=c(2,3))
abline(v=c(3,5),col="grey55")
Grafiks ar papildus līnijām

Figure 4.22: Grafiks ar papildus līnijām

4.4 Grafiku saglabāšana

Programmā R iegūtos grafikus ir iespējams saglabāt dažādos formātos, izmantošanai citās programmās. Jau izveidotu grafiku, kas redzams uz ekrāna, ir iespējams saglabāt izmantojot opciju File/Save as... un izvēloties nepieciešamo faila veidu (Metafile, Postcript, PDF, Png, Bmp, Jpeg (kvalitāte 50%, 75% vai 100%), kā arī grafiku ir iespējams ielikt atmiņa File/Copy to clipboard... Saglabājot jau izveidotu grafiku, ir jāņem vērā, ka uz ekrāna grafiks ne vienmēr tiek attēlots pareizākajās proporcijās, sevišķi, ja ekrāna izmērus esat pielāgojuši paši.

Grafikus ir iespējams uzreiz saglabāt nepieciešamajā formātā ar atbilstošu komandu rindu, tikai šajā gadījumā grafiks netiks parādīts uz ekrāna. Lai grafikus uzreiz saglabātu, pirms visām komandu rindām, ar kurām nosaka grafika parametrus, ir jāraksta atbilstoša komanda, kas nosaka saglabājamā faila formātu un faila nosaukumu:

postscript(file="nosaukums.ps")

png(file="nosaukums.png")

pdf(file="nosaukums.pdf")

jpeg(file="nosaukums.jpg")

bmp(file="nosaukums.bmp")

Pēc tam, kad ir uzrakstītas visas vajadzīgās grafika komandu rindas, ir “jāatslēdz” komanda, ar kuru noteica faila formātu un faila nosaukumu. Pretējā gadījumā visi nākamie grafiki arī tiks saglabāti konkrētajā failā, aizstājot iepriekšējo. Lai to izdarītu, raksta komandu dev.off().