Transformación de los datos

Considera el siguiente data frame donde cada columna representa la trayectoria de un movimiento browniano.

# Movimiento browniano
set.seed(2)

# Grid
t <- seq(0, 1, by = 0.001)
p <- length(t) - 1

# 5 trayectorias
n <- 5
I <- matrix(rnorm(n * p, 0, 1 / sqrt(p)), n, p)

# Data frame
df1 <- data.frame(apply(I, 1, cumsum))

Para usar tu data frame en ggplot2 tendrás que transformarlo en lo que se conoce como long format. Puedes transformalo haciendo uso de la función melt del paquete reshape.

# install.packages("reshape")
library(reshape)

df <- data.frame(x = seq_along(df1[, 1]),
                 df1)

# Formato long
df <- melt(df, id.vars = "x")

Gráfico de líneas de varias variables

Dado un data frame en formato long como df es posible crear un gráfico de múltiples líneas en ggplot2 con geom_line de la siguiente manera.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = x, y = value, color = variable)) +
  geom_line()

Gráfico de líneas múltiples en ggplot2

Grosor y tipo de líneas

El estilo de las líneas se puede cambiar haciendo uso de los argumentos de geom_line, como linetype para cambiar el tipo de línea o lwd para cambiar su grosor.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = x, y = value, color = variable)) +
  geom_line(linetype = 3,
            lwd = 1.1)

Personalizar un gráfico de líneas en ggplot2

Personalización del color

La paleta de colores por defecto se puede cambiar pasando un vector de colores al argumento values de la función scale_color_manual.

# install.packages("ggplot2")
library(ggplot2)

# Selección de colores
cols <- c("#D43F3A", "#EEA236", "#5CB85C", "#46B8DA", "#9632B8")

ggplot(df, aes(x = x, y = value, color = variable)) +
  geom_line() +
  scale_color_manual(values = cols)

Cambiar el color de un gráfico de líneas por grupo en ggplot2

Resaltar algunas líneas

Ten en cuenta que usando el método anterior también puedes destacar algunas líneas del gráfico, usando el mismo color para todas menos para las que quieras.

# install.packages("ggplot2")
library(ggplot2)

# Selección de colores
cols <- c("gray", "gray", "gray", "#5CB85C", "gray")

ggplot(df, aes(x = x, y = value, color = variable)) +
  geom_line() +
  scale_color_manual(values = cols)

Resaltar líneas en ggplot2

Personalización de la leyenda

Cambiar el título de la leyenda de un gráfico de líneas en ggplot2

Título

Puedes cambiar el título por defecto de la leyenda del gráfico de líneas con guide_legend tal y como se muestra a continuación.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = x, y = value, color = variable)) +
  geom_line() +
  guides(color = guide_legend(title = "Título"))

Cambiar las etiquetas de la leyenda de un gráfico de líneas de ggplot2

Etiquetas de la leyenda

Las etiquetas de la leyenda se pueden modificar haciendo uso del argumento labels de scale_color_discrete.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = x, y = value, color = variable)) +
  geom_line() +
  scale_color_discrete(labels = paste("V", 1:5))

Eliminar la leyenda de un gráfico de líneas en ggplot2

Eliminar la leyenda

Si quieres deshacerte de la leyenda puedes establecer legend.position = "none".

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = x, y = value, color = variable)) +
  geom_line() +
  theme(legend.position = "none")

También te puede interesar