# caracter global pentru colour
ggplot(gapminder_2018, aes(x = gdpPerCap, y = lifeExp, colour = continent)) +
geom_point()
# sau local
ggplot(gapminder_2018, aes(x = gdpPerCap, y = lifeExp)) +
geom_point(aes(colour = continent))
Corespondențe estetice (aesthetic mappings)
Corespondențele estetice, de aspect, (aesthetic mappings) preiau proprietăți ale datelor și le folosesc pentru a influența o serie de caracteristici vizuale ale figurii, precum poziția, culoarea, mărimea, forma sau transparența. Astfel fiecare caracteristică vizuală poate codifica un aspect al datelor și, prin urmare, poate fi utilizată pentru a transmite noi informații. Toate elementele estetice se specifică folosind funcția aes()
atât în interiorul funcției ggplot
unde dobândesc un caracter global cât și în interiorul fiecărui strat definit de un obiect geometric (geom). De exemplu, în figura de mai jos, pentru setul de date gapminder_2018
, culoarea (definită prin estetica colour =
) descrie (corespunde la) apartenența la continent, poziția x arată produsul intern brut al statelor (gdpPerCap
) iar poziția y arată speranța medie de viață (lifeExp
).
Diferența dintre caracterul global și cel local al elementelor estetice (atunci când sunt aplicate funcției ggplot
sau a straturilor individuale) se poate observa în figura de mai jos, unde adăugăm la grafic dreptele de regresie corespunzătoare țărilor de pe fiecare continent. Astfel, în cazul global, dreptele de regresie sunt asociate pentru fiecare subset de date (determinate de variabila continent
prin intermediul esteticii de culoare) pe când atunci când elementul estetic este specificat în cadrul stratului geometric local (geom_point()
)) se asociază dreapta de regresie asociată întregului set de date.
# global
ggplot(gapminder_2018, aes(x = gdpPerCap, y = lifeExp, colour = continent)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE)
# local
ggplot(gapminder_2018, aes(x = gdpPerCap, y = lifeExp)) +
geom_point(aes(colour = continent)) +
geom_smooth(method = "lm", se = FALSE)
Elementele estetice ce pot fi utilizate pentru trasarea unei figuri depind de tipul de obiect/strat geometric (geom) folosit. Pentru mai multe informații se poate consulta documentația funcțiilor geom
la secțiunea Aesthetics (e.g. ?geom.point
) unde elementele obligatorii apar îngroșate iar cele opționale apar normal.
Printre cele mai uzuale elemente estetice ale unui grafic enumerăm:
Element estetic (aesthetic) | Descriere |
---|---|
x |
Poziția pe axa absciselor (x-axis) |
y |
Poziția pe axa ordonatelor (y-axis) |
shape |
Forma punctelor |
color /colour |
Culoarea marginală a elementelor |
fill |
Culoarea de umplere, interioară, a elementelor |
size |
Mărimea |
alpha |
Tranparență (1 - opac, 0 - transparent) |
linetype |
Tipul liniei (e.g. solidă, punctată, etc.) |
O prezentare generală și mai amănunțită a acestora se regăsește în vigneta pachetului ggplot2
intitulată Aesthetic specifications
care poate fi apelată prin
vignette("ggplot2-specs")
Trebuie remarcat faptul că prin utilizarea funcției aes()
, canalul vizual va fi determinat să se bazeze pe datele specificate în argument. De exemplu, atunci când folosim comanda aes(colour = "blue")
nu va face ca obiectul geometric (în cazul de mai sus punctele) să aibă culoarea albastră, ci va face maparea ca și cum am avea un singur tip numit “albastru”. În cazul în care dorim să aplicăm valoarea elementului estetic întregului obiect geometric, de exemplu să schimbăm culoarea punctelor în albastru, atunci trebuie să specificăm elementul estetic în afara funcției aes()
:
# interior
ggplot(gapminder_2018, aes(x = gdpPerCap, y = lifeExp)) +
geom_point(aes(colour = "blue"))
# exterior
ggplot(gapminder_2018, aes(x = gdpPerCap, y = lifeExp)) +
geom_point(colour = "blue")
Putem face acest lucru pentru fiecare caracteristică estetică, incluzând colour
, fill
, shape
sau size
. În exemplul din Figura 4 de mai jos schimbăm culoarea, mărimea și forma punctelor:
Atribuirea unei valori fixate (unei constante) unei estetici în interiorul funcției aes()
poate fi utilă în special atunci când dorim să ilustrăm mai multe straturi cu diverși parametrii și în care dorim să numim acești parametrii. Spre exemplu să presupunem că dorim să ajustăm mai multe modele de regresie la setul de date gapminder_2018
și să scoatem în evidență curbele generate.
ggplot(gapminder_2018, aes(x = gdpPerCap, y = lifeExp)) +
geom_point() +
geom_smooth(method = "lm",
se = FALSE,
aes(color = "Liniar") ) +
geom_smooth(method = "lm",
formula = y ~ poly(x, 2),
se = FALSE,
aes(color = "Patratic") ) +
geom_smooth(method = "lm",
formula = y ~ poly(x, 3),
se = FALSE,
aes(color = "Cubic") )