El lenguaje de programación R es muy poderoso para la generación de gráficos. Existen varios paquetes gratuitos para instalar con los comandos usuales y que facilitan la creación de gráficos de distinta naturaleza y con sintaxis muy diferentes. Algunos de los más populares son:
graphics
. Es el paquete de gráficos por defecto en R. Normalmente se crea un gráfico base con la función plot
y después se añaden otros componentes como texto, puntos, leyenda y guía de colores.scatterplot3d
. Es un paquete que permite crear gráficos de dispersión en tres dimensiones y utiliza la misma sintaxis que graphics
lattice
. Su sintaxis está basada ampliamente en graphics
y facilita la presentación de datos multivariados mucho mejor que graphics
. También tiene funciones para crear gráficos en 3d.ggplot2
. Es uno de los paquetes gráficos más modernos y potentes y con la sintaxis más diferente de todos, pero al mismo tiempo muy asequible. Está pensado en ciencia de datos por lo que es muy potente para gráficos de datos multivariados.plot3D
. Es un paquete muy potente para generar todo tipo de gráficos en 3d, aunque su sintaxis es la tradicional del paquete graphics
.Aquí nos enfocaremos en usar graphics
y ggplot2
, por ser los más populares, el primero por la larga tradición con que ya cuenta y el segundo por moderno, potente y popular.
Existen muchos tipos de gráficos y herramientas visuales para ayudarnos a hacer un análisis exploratorio, representar nuestros resultados ó comunicar algonimportanto que nuestros datos representan. Los gráficos pueden representar ciertas características de una sola variable, de dos o relaciones entre dos conjuntos. Por ejemplo los gráficos de caja representan las medidas de tendencia central de una sola variable, que puede estar dividida en categorías o niveles de otra variable (figura 1.1).
Para representar la distribución estadística de una variable, también existen los histogramas y gráficos de densidad. A diferencia de los gráficos de cajas, estos últimos muestran la candidad de observaciones que hay para cada valor de una variable (figura 1.2).
Un tipo de gráficos bi-variado (permite la visualización de dos variables), son los gráficos de dispersión. Se consiguen marcando los puntos en el plano euclidiano donde coinciden los dos conjuntos que se están graficando y sirven para visualizar tendencias y sus formas, es decir si lo valores de un conjunto aumentan o disminuyen cuando el otro conjunto aumenta de valor (figura 1.3)
graphics
La función base de este paquete es plot
, aunque está prácticamente limitada a la generación de gráficos de dispersión y de líneas. En análisis de datos, otras funciones prácticas son boxplot
para gráficos de caja e hist
para histogramas. Para usar la función plot
necesitamos dos argumentos como mínimo, las coordenadas \(x\) y las \(y\).
x <- rnorm(100)
y <- x + rnorm(100, mean = 1, sd = 0.25)
plot(x, y)
En la Figura 2.1 se muestra la simulación de dos variables \(x\) con una distribución normal con \(\mu = 0\) y \(\sigma = 1\), y \(y\) que está correlacionada con \(x\) pero a la que se añade variación con una distribución normal con \(\mu = 0\) y \(\sigma = 0.25\).
Por defecto la función plot
graficará con puntos, pero esto se puede modificar especificando el tipo de gráfico que queremos, por ejemplo:
x1 <- 1:10
y1 <- 1:10
plot(x1, y1, type = "l")
Si quisiéramos explorar la distribución estadística de los valores de ambas variables, podemos utilizar boxplot
e hist
:
boxplot(x)
hist(x)
La mayoría de las veces que hacemos análisis exploratorio tenemos las variables almacenadas en una base de datos. Además de acceder a los datos dentro de una base, normalmente estamos interesados en analizar la relación entre dos variables. Por lo tanto veamos cómo podemos acceder a los datos e incluir más de una variable de un data.frame
con la función boxplot
(incluidos los detalles de simulación):
x2 <- rnorm(100, mean = 1, sd = 2)
x3 <- rnorm(100, mean = 1.3, sd = 1.5)
tratamiento <- rep(c("a", "b"), each = 100)
base <- data.frame(Variable = c(x2, x3),
Tratamiento = tratamiento)
boxplot(Variable ~ Tratamiento, data = base)
ggplot2
El paquete ggplot2
es uno de los más modernos y potentes de R para representar datos visualmente. Su sintaxis, sin embargo, es muy distinta de la que se usa en graphics
. Todas las gráficas de ggplot2
se generan llamando primero la función ggplot
, y después se le van añadiendo los elementos gráficos como líneas, puntos, cajas o áreas. Para añadir cada uno de estos elementos gráficos existen funciones geométricas como geom_point
o geom_line
para puntos y líneas respectivamente. El gráfico de la figura ?? puede ser replicado en ggplot
de la siguiente manera:
library(ggplot2)
base.1 <- data.frame(x = x, y = y)
ggplot(base.1) + geom_point(aes(x = x, y = y))
Para un gráfico de cajas:
ggplot(base) + geom_boxplot(aes(x = Tratamiento, y = Variable))
Una de las grandísimas ventajas de ggplot2
es que se pueden utilizar colores para resaltar diferencias entre grupos de datos mucho más fácil que en graphics
, simplemente añadiendo la variable que queremos utilizar para identificar los colores:
ggplot(base) + geom_boxplot(aes(x = Tratamiento, y = Variable, fill = Tratamiento))