Lattice es una alternativa para generación de gráficos que ha tenido cierto recorrido en R. Aunque ha perdido peso en su uso por efecto de ggplot, conviene conocerlo puesto que aún se usa en muchos paquetes, blogs y archivos de ayuda, incluso en cursos. El mundo de la biodiversidad no es ajeno precisamente a él. La sintaxis típica es la siguiente:

graph_type(formula, data=)

graph_type se sustituye por una función concreta de la lista disponible en el enlace (!https://www.statmethods.net/advgraphs/trellis.html). La fórmula, que no es como las que hemos visto hasta ahora nos dice qué variable es la que hay que representar, según otras. ~x|A significa que hay que representar la variable cuantitativa x para cada uno de los valores de la variable factorial A. y~x | A*B significa representar la relación entre dos variables cuantitativas de manera separada en cada una de las combinaciones de dos variables factoriales.

Vamos en primer lugar a instalar el paquete y cargar la librería. En este caso, latticeExtra nos cargará tanto la librería básica como un paquete con funcionalidades añadidad.

install.packages("latticeExtra")
library(latticeExtra)

Vamos a cargar el dataset precargado iris, que contiene los datos de longitud y anchura de los pétalos y sépalos de tres especies de Lirios del género Iris, y que son uno de los datasets más famosos en una sección de la ciencia de datos dedicada a la clasificación. Las tres especies son Iris setosa, Iris versicolor, I. virginica. data= nos sirve para decirle dónde tiene que buscar los nombres de las variables.

data(iris)
str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

Vamos a ver histogramas de la variable de longitud de los sépalos de cada una de las tres especies. Usamos la función histogram(). Como solo tenemos una variable, no dos, empezamos la fórmula directamente con el símbolo ~.

histogram(~Sepal.Length|Species,data=iris)

bwplot() y densityplot() nos permiten realizar también visualizaciones de la distribución de los datos:

bwplot(~Sepal.Length|Species,data=iris)

densityplot(~Sepal.Length|Species,data=iris)

La función xyplot() nos permite representar un diagrama de dispersión. Primero vamos a ver un ejemplo con todos los datos, y luego otro especie por especie. La fórmula cambia. No empezamos con la ~ sino con la variable que irá en el eje de las y, como si se tratara la variable dependiente de un modelo estadístico.

xyplot(Petal.Length~Sepal.Length,data=iris)

xyplot(Petal.Length~Sepal.Length|Species,data=iris)

La función splom() permite hacer una matriz de diagramas de dispersión, que nos relaciona las variables cuantitativas entre ellas.

splom(iris)

Para personalizar los gráficos, acudimos a los parámetros habituales ya vistos. Sin embargo, atención al color: lo podemos determinar a través del parámetro group. Si queremos ponerlo con el parámetro habitual col, tenemos que decirle en qué objeto tenemos nuestra variable, si no, no lo reconocerá. Fijaos en el cambio de color.

xyplot(Petal.Length~Sepal.Length|Species,data=iris,
       main="Relación morfométrica \n en Iris",
       xlab="Longitud del sépalo",ylab="Longitud del pétalo")

xyplot(Petal.Length~Sepal.Length,data=iris,
       main="Relación morfométrica \n en Iris",
       xlab="Longitud del sépalo",ylab="Longitud del pétalo",group=Species)

xyplot(Petal.Length~Sepal.Length,data=iris,
       main="Relación morfométrica \n en Iris",
       xlab="Longitud del sépalo",ylab="Longitud del pétalo",col=iris$Species)

Finalmente, la función show.settings() nos muestra un resumen gráfico de las posibilidades del paquete para personalizar los gráficos:

show.settings()