Gráfico de Gannt

Portafolio
Dataviz
Resumen

Una visualización de datos correcta puede expresar de forma resumida y clara gran cantidad de información, ayudando a interpretar y asimilar la información más facilmente.

Gráfico de Gannt de un proceso de selección.

Se tiene la fecha de inicio y de finalización de cada tarea. Para el status de cada tarea se compara la fecha actual con la fecha de finalización de la tarea.

Datos

Código
tasks <- 
  data.frame(
    task = factor(c("Revisión de CV",
                    "Entrevista inicial",
                    "Prueba técnica",
                    "Llamar referencias",
                    "Entrevista final",
                    "Oferta"),
                  levels = c("Revisión de CV",
                             "Entrevista inicial",
                             "Prueba técnica",
                             "Llamar referencias",
                             "Entrevista final",
                             "Oferta")),
    start = as.Date(c("2024-01-01",
                      "2024-01-10",
                      "2024-01-15",
                      "2024-01-15",
                      "2024-01-20",
                      "2024-02-01")),
    end = as.Date(c("2024-01-07",
                    "2024-01-15",
                    "2024-01-25",
                    "2024-01-16",
                    "2024-02-05",
                    "2024-02-15"))
)

tasks <- tasks %>%
  mutate(
    # Sustituir la fecha por Sys.Date()
    fecha_actual = "2024-01-17",
    status = case_when(
      start > "2024-01-17" ~ "planned",
      start < "2024-01-17" & end > "2024-01-17" ~ "on track",
      start < "2024-01-17" & end < "2024-01-17" ~ "done",
      TRUE ~ "delayed")
  ) |> arrange(start)

tasks
                task      start        end fecha_actual   status
1     Revisión de CV 2024-01-01 2024-01-07   2024-01-17     done
2 Entrevista inicial 2024-01-10 2024-01-15   2024-01-17     done
3     Prueba técnica 2024-01-15 2024-01-25   2024-01-17 on track
4 Llamar referencias 2024-01-15 2024-01-16   2024-01-17     done
5   Entrevista final 2024-01-20 2024-02-05   2024-01-17  planned
6             Oferta 2024-02-01 2024-02-15   2024-01-17  planned

Código.

Código
tasks |> ggplot(aes(x = start, xend = end, y = task, yend = task, color = status)) + 
  geom_segment(size = 6) +
  scale_color_manual(values = c("on track" = "lightgreen", 
                                "delayed" = "yellow3", 
                                "planned" = "lightblue1", 
                                "done" = "grey")) +
  labs(title = "Proceso de selección de personal",
       x = "Fecha inicio de la tarea",
       y = "Fase del proceso",
       color = "Status") +
  theme_minimal() + geom_vline(xintercept = as.numeric(as.Date("2024-01-17")), linetype="dotted", 
                color = "black", size=0.5) + 
  geom_text(x=as.numeric(as.Date("2024-01-17")), y=1.5, label=Sys.Date(),
            angle=90, color = "darkgrey", size=3)