La función plot() en R: gráficos rápidos sin librerías
plot() dibuja un gráfico. Sin librerías, sin instalar nada, viene con R. Para explorar datos mientras trabajas es difícil de superar: escribes una línea y ves el resultado.
Ejemplo simple
Dale dos vectores y te hace un diagrama de dispersión:
x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 5, 8, 11)
plot(x, y)
Si solo le pasas un vector, usa la posición como eje X:
plot(y)
Los argumentos que vas a usar siempre
Cuatro argumentos y el gráfico deja de parecer un borrador:
plot(x, y,
main = "Ventas por mes",
xlab = "Mes",
ylab = "Ventas (miles de €)",
col = "steelblue",
pch = 19)
main es el título, xlab e ylab los nombres de los ejes, col el color y pch la forma del punto (19 es un círculo relleno, que se ve mucho mejor que el hueco por defecto).
Para unir los puntos con una línea en vez de dibujarlos sueltos, está type:
plot(x, y, type = "l") # línea
plot(x, y, type = "b") # puntos y línea
Ejemplo algo más completo: dos series y una recta de tendencia
Para superponer cosas, primero dibujas con plot() y luego vas añadiendo capas:
meses <- 1:12
ventas <- c(120, 135, 128, 150, 165, 170, 158, 149, 172, 185, 190, 210)
plot(meses, ventas,
type = "b",
main = "Evolución de ventas",
xlab = "Mes",
ylab = "Ventas",
col = "steelblue",
pch = 19)
# Media como línea horizontal de referencia
abline(h = mean(ventas), col = "red", lty = 2)
# Tendencia lineal
abline(lm(ventas ~ meses), col = "darkgreen")
abline() añade líneas rectas sobre el gráfico que ya existe: con h = una horizontal, y pasándole un modelo lineal, la recta de tendencia. lty = 2 la dibuja discontinua.
Para guardar el gráfico en un archivo, abres un dispositivo, dibujas y lo cierras:
png("ventas.png", width = 800, height = 500)
plot(meses, ventas, type = "b", col = "steelblue", pch = 19)
dev.off()
Ese dev.off() no es opcional: hasta que no lo ejecutas, el archivo no se termina de escribir.
Para distribuciones tienes además boxplot() y hist(), que funcionan igual de directos. Y existe ggplot2, que da gráficos más vistosos y es lo que verás en la mayoría de tutoriales. Pero para mirar tus datos mientras analizas, plot() es más rápido, no depende de nada y funciona en cualquier instalación de R.