Cómo crear un diagrama de Gantt en R usando ggplot2

Un diagrama de Gantt es un tipo de diagrama que muestra las horas de inicio y finalización de varios eventos.

Este tutorial explica cómo crear un diagrama de Gantt en R usando el paquete ggplot2 .

Crear un diagrama de Gantt en R usando ggplot2

Supongamos que tenemos el siguiente conjunto de datos que muestra las horas de inicio y finalización de los turnos de cuatro trabajadores diferentes en una tienda:

#create marco de datos
data <- data.frame (name = c ('Bob', 'Greg', 'Mike', 'Andy'), 
inicio = c (4, 7, 12, 16),
fin = c (12, 11, 8, 22),
shift_type = c ('temprano', 'mediodía', 'mediodía', 'tarde')
)
datos

# nombre inicio fin shift_type
# 1 Bob 4 12 temprano
# 2 Greg 7 11 mediodía
# 3 Mike 12 8 mediodía
# 4 Andy 16 22 tarde

Para crear un diagrama de Gantt usando ggplot2 que visualice las horas de inicio y finalización de cada trabajador, podemos usar el siguiente código:

#install (si aún no está instalado) y carga ggplot2
if (! require (ggplot2)) {install.packages ('ggplot2')}

#crear un diagrama de Gantt que visualice la hora de inicio y finalización de cada trabajador
ggplot (datos, aes (x = inicio, xend = final, y = nombre, final = nombre, color = shift_type)) +
  geom_segment ()

Esto produce el siguiente diagrama de Gantt:

Ejemplo de diagrama de Gantt en R usando ggplot2

Con un par de ajustes en el diseño, podemos hacer que este diagrama de Gantt se vea mucho mejor:

ggplot (data, aes (x = start, xend = end, y = name, yend = name, color = shift_type)) + 
  theme_bw () + #use ggplot theme con cuadrícula negra y fondo blanco
   geom_segment (tamaño = 8) + # aumentar el ancho de línea de los segmentos en los
   laboratorios de gráficos (título = 'Horario del trabajador', x = 'Hora', y = 'Nombre del trabajador')

Esto produce el siguiente gráfico:

Además, si desea definir los colores exactos que se utilizarán en el gráfico, puede utilizar el siguiente código:

ggplot (datos, aes (x = inicio, xend = final, y = nombre, final = nombre, color = shift_type)) +
  theme_bw () + #use ggplot theme con cuadrícula negra y fondo blanco 
  geom_segment (size = 8) + #increase el ancho de línea de los segmentos en el gráfico
  labs (title = 'Horario del trabajador', x = 'Hora', y = 'Nombre del trabajador') +
  scale_colour_manual (valores = c ('rosa', 'violeta', 'azul'))

Esto produce el siguiente cuadro con colores rosa, violeta y azul para representar los diferentes tipos de turnos:

Diagrama de Gantt en R con colores personalizados en ggplot2

Usar temas personalizados

Podemos llevar las cosas un paso más allá utilizando temas personalizados de la biblioteca ggthemes .

Por ejemplo, podemos crear un diagrama de Gantt que utilice un tema inspirado en The Wall Street Journal:

#cargar biblioteca de ggthemes
biblioteca (ggthemes)

#create un diagrama de dispersión con el tema del Wall Street Journal
 ggplot (datos, aes (x = inicio, xend = final, y = nombre, yend = nombre, color = shift_type)) +
  theme_bw () +
  geom_segment (tamaño = 8) +
  labs (title = 'Horario del trabajador', x = 'Hora', y = 'Nombre del trabajador') +
  scale_colour_manual (valores = c ('rosa', 'violeta', 'azul')) +
  theme_wsj () + 
  tema (axis.title = element_text ())

Diagrama de Gantt en R con tema de Wall Street Journal

O podríamos usar un tema inspirado en The Economist:

ggplot (datos, aes (x = inicio, xend = final, y = nombre, final = nombre, color = shift_type)) +
  theme_bw () +
  geom_segment (tamaño = 8) +
  labs (title = 'Horario del trabajador', x = 'Hora', y = 'Nombre del trabajador') +
  scale_colour_manual (valores = c ('rosa', 'violeta', 'azul')) +
  theme_economist () + 
  tema (axis.title = element_text ())

Diagrama de Gantt en R usando ggplot2

O quizás un tema inspirado en Five Thirty Eight :

ggplot (datos, aes (x = inicio, xend = final, y = nombre, final = nombre, color = shift_type)) +
  theme_bw () +
  geom_segment (tamaño = 8) +
  labs (title = 'Horario del trabajador', x = 'Hora', y = 'Nombre del trabajador') +
  scale_colour_manual (valores = c ('rosa', 'violeta', 'azul')) +
  theme_fivethirtyeight () + 
  tema (axis.title = element_text ())

Diagrama de Gantt en R usando el tema Five Thirty Eight

Para obtener una lista completa de los temas disponibles en la biblioteca ggthemes , consulte la página de documentación .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

La covarianza es una medida de cómo los cambios en una variable se asocian con los cambios en una segunda…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!