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