7.2 Atsevišķu attēla elementu mainīšana

Papildus jau definētajām attēla noformējuma tēmām, ir iespējams mainīt gandrīz katru no attēla elementiem atsevišķi, izmantojot funkciju theme() un atbilstošo elementa nosaukumu. Pilnu sarakstu ar elementu nosaukumiem var iegūt apskatot funkcijas theme() palīdzības lapu.

Elementu izskatu maiņa notiek pēc vienota principa - sākotnēji ir funkcija theme(), kurā kā arguments jānorāda maināmais elements, piemēram, axis.text.x = un tad nāk funkcija, kas norāda kāda izmaiņas veikt. Ir pieejamas trīs funkcijas element_text(), element_line() un element_rect(), kuras ir jāizraugas atbilstoši tam, kāda veida maināmais elements tas ir - teksts, līnija vai reģions (poligons). Katra elementa maiņa nav jāraksta savā theme() funkcijā, bet tie var būt vairāki argumenti vienā funkcijā.

Teksta elementiem (element_text()) var mainīt teksta fontu grupu (family =), fonta veida (face =), krāsu (colour =), izmēru (size =), novietojumu horizentāli (hjust =) un vertikāli (vjust =), teksta leņķi (angle =), līnijas augstumu (lineheight =), atstarpes (margin =).

Līniju elementiem (element_line()) var mainīt krāsu (colour =), līnijas biezumu (size =), līnijas veidu (linetype =), līnijas nobeigumu (lineend =) un pievienot bultu (arrow =).

Reģiona jeb poligona elementiem (element_rect()) var mainīt aizpildījumu (fill =), krāsu līnijai apkārt reģionam (colour =), līnijas biezumu (size =) un līnijas veidu (linetype =).

Ir pieejama arī speciāla funkcija element_blank(), kas no attēla noņems atbilstošo elementu, turklāt “pazudīs” arī šim elementam atvēlētā vieta, ja tas būs, piemēram, asu paraksts, vai asu apzīmējumi.

7.2.1 Attēla virsraksts

Attēla virsraksta izskatu (bet ne tā saturu) maina ar argumentu plot.title =.

Pirmajā piemēra teksta virsraksts pārveidots zaļā krāsā, 20 fonta izmērā un slīprakstā (7.10 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      labs(title = "CO2 attēls")+
      theme(plot.title = element_text(colour = "green",
                                      size = 20,
                                      face = "italic"))
Attēls ar mainītu virsraksta izskatu

Attēls 7.10: Attēls ar mainītu virsraksta izskatu

Jaunākajā ggplot2 verijā (2.2.0) virsraksts automātiski ir novietots attēla kreisajā pusē, to var izmainīt ar argumentu hjust = un vērtību 0.5 (0 - kreisā mala, 1 - labā mala, 0.5 - pa vidu) (7.11 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      labs(title = "CO2 attēls")+
      theme(plot.title = element_text(hjust = 0.5))
Attēls ar mainītu virsraksta novietojumu

Attēls 7.11: Attēls ar mainītu virsraksta novietojumu

Ja attēlam ir arī apakšvirsraksts, tad tā izskatu maina ar argumentu plot.subtitle = (7.12 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      labs(title = "CO2 attēls", subtitle = "Koncentrācijas ietekme")+
      theme(plot.subtitle = element_text(face = "bold",
                                         colour = "blue"))
Attēls ar mainītu apakšvirsrakstu

Attēls 7.12: Attēls ar mainītu apakšvirsrakstu

7.2.2 Asu paraksti

Asu parakstu maiņa notiek ar elementu axis.title = (abas asis vienlaicīgi), vai axis.title.x = un axis.title.y = mainot katras ass izskatu atsevišķi.

Asu paraksti arī ir teksts, tāpēc izmantojama funkcija element_text() (7.13 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(axis.title = element_text(size = 15,
                                      face = "bold"))
Attēls ar vienādu asu parakstu noformējumu

Attēls 7.13: Attēls ar vienādu asu parakstu noformējumu

Izmantojot argumentus axis.title.x = un axis.title.y = var mainīt katru asi atsevišķi, piemēram, vienais asij noņemot parakstu, bet otrai to izmainot (7.14 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(axis.title.x = element_blank(),
            axis.title.y = element_text(colour = "red"))
Attēls ar x asi bez paraksta

Attēls 7.14: Attēls ar x asi bez paraksta

7.2.3 Asu apzīmējumi

Apzīmējumus pie asīm (skaitļus vai līmeņu nosaukumus) maina ar argumentiem axis.text =, axis.text.x =, vai axis.text.y = (7.15 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(axis.text.x = element_text(angle = 45, hjust = 1),
            axis.text.y = element_text(angle = 90, hjust = 0.5))
Attēls ar mainītiem asu apzīmējumiem

Attēls 7.15: Attēls ar mainītiem asu apzīmējumiem

7.2.4 Asu līnijas

Pēc noklusējuma vairākām tēmām nerādās asu līnijas. Tās var pievienot ar argumentu axis.line =, vai axis.line.x = un axis.line.y =. Tā kā tās ir līnijas, tad to izskata maiņai izmanto funkciju element_line() (7.16 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(axis.line = element_line(linetype = "longdash"))
Attēls ar asu līnijām

Attēls 7.16: Attēls ar asu līnijām

Asu līniju galos ir iespējams arī pievienot bultiņu ar argumentu arrow = un funkciju arrow(), kurā norāda argumentu length = un bultiņas garumu un mērvienību (funkcijā unit()) (7.17 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(axis.line = element_line(arrow = arrow(length = unit(2, 'mm'))))
Attēls ar bultiņām pie asīm

Attēls 7.17: Attēls ar bultiņām pie asīm

7.2.5 Leģendas novietojums

Leģendas novietojuma nosaka ar argumentu legend.position = un iespējamāma vērtībām "none", "left", "right", "bottom" un "top" (7.18 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.position = "bottom")
Attēls ar leģendu apakšā

Attēls 7.18: Attēls ar leģendu apakšā

Ja nepieciešams novietot leģendu attēla iekšienē, tad jānora reletīvās x un y koordinātes, kur c(0,0) atbilst attēla apakšējam kreisajam stūrim un c(1,1) attēla augšējam labajam stūrim (7.19 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.position = c(0.1,0.8))
Attēls ar leģendu attēla iekšienē

Attēls 7.19: Attēls ar leģendu attēla iekšienē

Leģendas novietojumā var mainīt arī leģendas ierakstu izvietojumu horizontāli vai vertikāli ar argumentu legend.direction = (7.20 attēls)

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.position = "bottom",
            legend.direction = "vertical")
Attēls ar leģendu apakšā un leģendas ierakstiem izkārtotiem vertikāli

Attēls 7.20: Attēls ar leģendu apakšā un leģendas ierakstiem izkārtotiem vertikāli

Leģendas novietojumu var ietekmē arī mainot atstarpi starp leģendu un pamatattēlu ar argumentu legend.box.spacing = un funkciju unit(), kurā norāda vēlamo atstarpes izmēru un mērvienību (7.21 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.box.spacing = unit(1, "cm"))
Attēls ar tālāk novietotu leģendu

Attēls 7.21: Attēls ar tālāk novietotu leģendu

7.2.6 Leģendas virsraksts

Leģendas virsrakstam var mainīt izskatu (legend.title =) līdzīgi kā citiem teksta elementiem, kā arī mainīt leģendas virsraksta novietojumu (legend.title.align =) ar vērtībām no 0 (pa kreisi) līdz 1 (pa labi) (7.22 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.title = element_text(size = 15,
                                        color = "darkgreen",
                                        face = "bold.italic"),
            legend.title.align = 1)
Attēls ar mainītu leģendas virsrakstu

Attēls 7.22: Attēls ar mainītu leģendas virsrakstu

7.2.7 Leģendas pamatne

Kopējo leģendas pamatnes izskatu var mainīt ar argumenu legend.background = un funkciju element_rect() (7.23 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.background = element_rect(fill = "grey73",
                                                 colour = "black"))
Attēls ar mainītu leģendas pamatni

Attēls 7.23: Attēls ar mainītu leģendas pamatni

Ja attēlam ir divas vai vairākas leģendas, tad legend.background = maina katras atsevišķas leģendas pamatni, bet kopējo pamatni maina ar argumentu legend.box.background = (7.24 attēls).

ggplot(CO2,aes(conc,uptake,color = Type, shape = Treatment)) + geom_point() + 
      theme(legend.box.background = element_rect(fill = "grey73",
                                                 colour = "black"),
            legend.background = element_rect(fill = "grey90"))
Attēls ar mainītu abu leģendu pamatni

Attēls 7.24: Attēls ar mainītu abu leģendu pamatni

7.2.8 Leģendas teksti

Leģendas ierakstu tekstus maina ar argumentiem legend.text = (to izskats) un legend.text.align = (to novietojums pa kreisi (0) vai labi (1)) (7.25 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.text = element_text(size = 7,
                                       angle = 5),
            legend.text.align = 0.8)
Attēls ar mainītu leģendu tekstu

Attēls 7.25: Attēls ar mainītu leģendu tekstu

7.2.9 Leģendas ieraksti

Pašu leģendas ierakstu, kuros parādas, piemēram, krāsu līmeņi vai simbolu veidi, mainīšanai ir pieejams parametrs legend.key =, kas maina ieraksta pamatnes izskatu (7.26 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.key = element_rect(fill = "lightblue",
                                      color = "blue"))
Attēls ar mainītu leģendu ieraksta pamatni

Attēls 7.26: Attēls ar mainītu leģendu ieraksta pamatni

Leģendas ierakstu pamatnes izmēru maiņai izmanto argumentu legend.key.size =, kas uzreiz maina vienādā apjomā gan platumu, gan augstumu, vai arī parametrus legend.key.height = un legend.key.width =, kas attiecīgi maina tikai augstumu, vai tikai platumu. Visiem šiem argumentiem ir jāizmanto funkcija unit(), lai noteiktu šo izmēru (7.27 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(legend.key.height = unit(0.5, "cm"),
            legend.key.width = unit(1, "cm"))
Attēls ar mainītu leģendu ierakstu izmēru

Attēls 7.27: Attēls ar mainītu leģendu ierakstu izmēru

7.2.10 Attēla iekšējās daļas pamatne

Attēla iekšējās daļas pamatnes izskata maina ar argumentu panel.background =. Ja šo argumentu lieto kopā ar funkciju element_blank(), tad tiek noņemta pamatnes krāsa (aizpildījums) (7.28 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(panel.background = element_blank())
Attēls ar noņemta iekšējās daļas pamatni

Attēls 7.28: Attēls ar noņemta iekšējās daļas pamatni

Lai noņemtu tikai krāsu, arguments fill = jānorāda kā NA. Ja papildus norāda argumenu “colour =”, tad apkārt attēla iekšējai daļai parādās līnija (7.29 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(panel.background = element_rect(fill = NA, color = "black"))
Attēls ar līniju apkārt iekšējai daļai

Attēls 7.29: Attēls ar līniju apkārt iekšējai daļai

7.2.11 Palīglīnijas (gridlines)

Visu palīglīniju ietekmēšanai jāizmanto arguments panel.grid =, piemēram, tā vērtību norādot kā element_blank() tiks noņemtas visas palīglīnijas (7.30 attēls).

ggplot(CO2,aes(conc,uptake,color = Type)) + geom_point() + 
      theme(panel.grid = element_blank())
Attēls bez palīglīnijām

Attēls 7.30: Attēls bez palīglīnijām

Ir iespējams arī ietekmēt atsevišķi visas galvenās palīglīnijas un mazās palīglīnijas, attiecīgi ar argumentiem panel.grid.major = un panel.grid.minor =. Var ietekmē arī atsevišķi šīs palīglīnijas attiecībā pret x un y ass ar argumentiem kā panel.grid.major.x = (7.31 attēls).

ggplot(CO2,aes(conc,uptake, color = Type)) + geom_point() + 
      theme(panel.grid.major.x = element_line(colour = "lightblue"),
            panel.grid.major.y = element_line(linetype = "dashed",
                                              size = 2))
Attēls ar izmainītām palīglīnijām

Attēls 7.31: Attēls ar izmainītām palīglīnijām

7.2.12 Attēla daļu virsraksti

Tiem attēliem, kas ir sadalīti daļā izmantot facet_...() funkcijas, atsevišķu attēlu nosaukumu tekstu pamatnes maina ar elementu strip.background =, bet pašu tekstu izskatu ar strip.text = (visus kopā), vai arī ar argumentiem strip.text.x = (horizontālie nosaukumi) un strip.text.y = (vertikālie nosaukumi) (7.32 attēls).

ggplot(CO2, aes(conc, uptake)) + geom_point() + 
      facet_grid(Treatment ~ Type) +
      theme(strip.background = element_rect(colour = "black", fill = NA),
            strip.text.x = element_text(face = "italic"),
            strip.text.y = element_text(face = "bold"))
Sadalīts attēls ar mainītiem nosaukumu noformējumiem

Attēls 7.32: Sadalīts attēls ar mainītiem nosaukumu noformējumiem

7.2.13 Visa attēla pamatne

Visa kopējā attēla pamatnes (fona) noteikšanai izmanto argumentu plot.background = (7.33 attēls).

ggplot(CO2, aes(conc, uptake, color = Type)) + geom_point() + 
      theme(plot.background = element_rect(fill = "lightgreen"))
Attēls ar mainītu pamatnes krāsu

Attēls 7.33: Attēls ar mainītu pamatnes krāsu

Visam attēlam var mainīt arī malas izmērus, kas tas atrodas apkārt. To nosaka ar argumentu plot.margin = un funkcijā unit() norādot četrus skaitļus, kas atbilst attiecīgi augšejai, labajai, apakšējai un kreisajai malai (7.34 attēls).

ggplot(CO2, aes(conc, uptake, color = Type)) + geom_point() + 
      theme(plot.margin = unit(c(2,2,3,3), "cm"))
Attēls ar mainītiem malas izmēriem

Attēls 7.34: Attēls ar mainītiem malas izmēriem