Gráficos de líneas en R
Visión general
Los gráficos de líneas se crean con la función líneas(x , y, tipo=) donde x e y son vectores numéricos de (x,y) puntos a conectar. tipo= puede tomar los siguientes valores:
tipo | description |
p | puntos |
l | líneas |
o | puntos y líneas sobretrazados |
b, c | puntos (vacíos si es "c") unidos por líneas |
s, S | escalones |
h | líneas verticales en forma de histograma |
n | no produce puntos ni líneas |
La función líneas( ) añade información a un gráfico. No puede producir un gráfico por sí solo. Normalmente sigue a un comando trazar(x , y) que produce un gráfico.
Por defecto, plot( ) traza los puntos (x,y). Utiliza la opción type="n" en el comando plot( ), para crear el gráfico con ejes, títulos, etc., pero sin trazar los puntos.
Ejemplo
En el código siguiente, cada una de las opciones type= se aplica al mismo conjunto de datos. El comando dibujar( ) configura el gráfico, pero no traza los puntos.
x <- c(1:5); y <- x # create some data
par(pch=22, col="red") # plotting symbol and color
par(mfrow=c(2,4)) # all plots on one page
opts = c("p","l","o","b","c","s","S","h")
for(i in 1:length(opts)){
heading = paste("type=",opts[i])
plot(x, y, type="n", main=heading)
lines(x, y, type=opts[i])
}
A continuación, demostramos cada una de las opciones type= cuando plot( ) configura la gráfica y _ hace _ trazar los puntos.
x <- c(1:5); y <- x # create some data
par(pch=22, col="blue") # plotting symbol and color
par(mfrow=c(2,4)) # all plots on one page
opts = c("p","l","o","b","c","s","S","h")
for(i in 1:length(opts){
heading = paste("type=",opts[i])
plot(x, y, main=heading)
lines(x, y, type=opts[i])
}
Como puedes ver, la opción type="c" sólo se ve diferente de la opción type="b" si se suprime el trazado de puntos en el comando plot( ).
Para demostrar la creación de un gráfico de líneas más complejo, tracemos el crecimiento de 5 naranjos a lo largo del tiempo. Cada árbol tendrá su propia línea distintiva. Los datos proceden del conjunto de datos Naranja.
# Create Line Chart
# convert factor to numeric for convenience
Orange$Tree <- as.numeric(Orange$Tree)
ntrees <- max(Orange$Tree)
# get the range for the x and y axis
xrange <- range(Orange$age)
yrange <- range(Orange$circumference)
# set up the plot
plot(xrange, yrange, type="n", xlab="Age (days)",
ylab="Circumference (mm)" )
colors <- rainbow(ntrees)
linetype <- c(1:ntrees)
plotchar <- seq(18,18+ntrees,1)
# add lines
for (i in 1:ntrees) {
tree <- subset(Orange, Tree==i)
lines(tree$age, tree$circumference, type="b", lwd=1.5,
lty=linetype[i], col=colors[i], pch=plotchar[i])
}
# add a title and subtitle
title("Tree Growth", "example of line plot")
# add a legend
legend(xrange[1], yrange[2], 1:ntrees, cex=0.8, col=colors,
pch=plotchar, lty=linetype, title="Tree")
Ir más lejos
Prueba los ejercicios de este curso sobre trazado y visualización de datos en R.