Gráfico de cascada en ggplot2 con el paquete waterfalls

Librería

waterfalls

Autor principal

Hugh Parsonage

Conjunto de datos de muestra

Considera el siguiente conjunto de datos que contiene dos variables que representan los valores y su evento, fecha o grupo correspondiente.

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

grupo <- LETTERS[1:6]
valor <- c(2000, 4000, 2000,
           -1500, -1000, -2500)
df <- data.frame(x = grupo, y = valor) 

Gráfico de cascada (waterfall chart)

Para crear un gráfico de cascada en ggplot2 usando el paquete waterfalls puedes pasar tu dataframe con grupos y valores o pasar los vectores a los argumentos values y labels de la función waterfall.

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

waterfall(df)

# Equivalente a:
waterfall(values = valor, labels = grupo)

Gráfico de cascada en ggplot2

Calcular el total

Estableciendo el argumento calc_total como TRUE se calculará el restulado final y se agregará un rectángulo al gráfico que contiene el resultado. Puedes cambiar el nombre del rectángulo en el eje con el argumento total_axis_text.

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

waterfall(df, calc_total = TRUE)

Waterfall chart en ggplot2 con waterfalls

Grosor de los rectángulos

Ten en cuenta que el argumento rect_width controla el ancho de los rectángulos. El valor por defecto es 0.7.

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

waterfall(df, rect_width = 0.4)

Grosor de los rectángulos del gráfico de cascada en ggplot2

Eliminar las líneas entre los rectángulos

Entre sucesivos rectángulos se muestran líneas punteadas uniendo dichos rectángulos. Puedes eliminarlas estableciendo draw_lines como FALSE.

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

waterfall(df, draw_lines = FALSE)

Función waterfall en R

Tipos de líneas

Si quieres manter las líneas entre los rectángulos pero prefieres cambiar el tipo de línea puedes hacerlo con el argumento linetype.

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

waterfall(df, linetype = 1)

Crear gráficos de cascada en ggplot2

Personalización del color

Colores personalizados de los rectángulos del waterfall chart

Colorear los rectángulos con colores personalizados

Por defecto fill_by_sign = TRUE, de modo que los valores positivos y negativos se colorearán cada uno con el mismo color. Si estableces el argumento como FALSE puedes usar los colores que quieras en cada rectángulo pasándolos al argumento fill_colours.

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

waterfall(df,
          fill_by_sign = FALSE,
          fill_colours = 2:7)

Colores del rectángulo total

Colores del rectángulo del total

Si agregaste el total con calc_total = TRUE puedes cambiar el color del rectángulo con total_rect_color y el color de su texto con total_rect_text_color.

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

waterfall(df, calc_total = TRUE,
          total_rect_color = "orange",
          total_rect_text_color = "white")

Cambiar el color del borde de los rectángulos en la función waterfall

Color del borde

Ten en cuenta que también puedes cambiar el color del borde de los rectángulos. Si los estableces como NA no se dibujarán los bordes, tal y como se muestra en el ejemplo siguiente.

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

waterfall(df, rect_border = NA)

Waterfall chart en ggplot2

Cambiar el tema

Por último, como la librería se basa en ggplot2 puedes agregar más capas a la función, como un título, un subtítulo o cambiar el tema, como se muestra a continuación, además de otras personalizaciones.

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

waterfall(df) +
  theme_minimal()

También te puede interesar