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).

# 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))

Figura 1: Ilustrarea componentei estetice colour.

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)

Figura 2: Exemplu de diferențe între caracterul global și local pentru estetica colour.

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:

Tabelul 1: Cele mai uzuale elemente estetice ale unui grafic.
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")

Figura 3: Exemplu de diferențe în utilizarea esteticii în interiorul comenzii aes().

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:

Figura 4: Exemplu în care 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") )

Figura 5: Exemplu în care atribuim o valoare fixată unei estetici în interiorul funcției aes().