Comment créer un diagramme de Gantt dans R à l’aide de ggplot2



Un diagramme de Gantt est un type de diagramme qui montre les heures de début et de fin de divers événements.

Ce tutoriel explique comment créer un diagramme de Gantt dans R à l’aide du package ggplot2 .

Création d’un diagramme de Gantt dans R à l’aide de ggplot2

Supposons que nous disposions de l’ensemble de données suivant qui montre les heures de début et de fin des quarts de travail de quatre travailleurs différents dans un magasin :

#create data frame
data <- data.frame(name = c('Bob', 'Greg', 'Mike', 'Andy'), 
start = c(4, 7, 12, 16),
end = c(12, 11, 8, 22),
shift_type = c('early', 'mid_day', 'mid_day', 'late')
)
data

#  name start end shift_type
#1 Bob      4  12      early
#2 Greg     7  11    mid_day
#3 Mike    12   8    mid_day
#4 Andy    16  22       late

Afin de créer un diagramme de Gantt à l’aide de ggplot2 qui visualise les heures de début et de fin de chaque travailleur, nous pouvons utiliser le code suivant :

#install (if not already installed) and load ggplot2
if(!require(ggplot2)){install.packages('ggplot2')}

#create gantt chart that visualizes start and end time for each worker
ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  geom_segment()

Cela produit le diagramme de Gantt suivant :

Avec quelques ajustements à la mise en page, nous pouvons rendre ce diagramme de Gantt bien meilleur :

ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+ #use ggplot theme with black gridlines and white background
  geom_segment(size=8) + #increase line width of segments in the chart
  labs(title='Worker Schedule', x='Time', y='Worker Name')

Cela produit le graphique suivant :

De plus, si vous souhaitez définir les couleurs exactes à utiliser dans le graphique, vous pouvez utiliser le code suivant :

ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+ #use ggplot theme with black gridlines and white background
  geom_segment(size=8) + #increase line width of segments in the chart
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_colour_manual(values = c('pink', 'purple', 'blue'))

Cela produit le graphique suivant avec les couleurs rose, violet et bleu pour représenter les différents types de quarts de travail :

Utiliser des thèmes personnalisés

Nous pouvons aller plus loin en utilisant des thèmes personnalisés de la bibliothèque ggthemes .

Par exemple, nous pouvons créer un diagramme de Gantt qui utilise un thème inspiré du Wall Street Journal :

#load ggthemes library
library(ggthemes)

#create scatterplot with Wall Street Journal theme
ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+
  geom_segment(size=8) +
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_colour_manual(values = c('pink', 'purple', 'blue')) +
  theme_wsj() + 
  theme(axis.title = element_text())

Ou nous pourrions utiliser un thème inspiré de The Economist :

ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+
  geom_segment(size=8) +
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_colour_manual(values = c('pink', 'purple', 'blue')) +
  theme_economist() + 
  theme(axis.title = element_text())

Ou peut-être un thème inspiré de Five Thirty Eight :

ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+
  geom_segment(size=8) +
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_colour_manual(values = c('pink', 'purple', 'blue')) +
  theme_fivethirtyeight() + 
  theme(axis.title = element_text())

Pour une liste complète des thèmes disponibles dans la bibliothèque ggthemes , consultez la page de documentation .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *