Come creare un diagramma di gantt in r utilizzando ggplot2
Un diagramma di Gantt è un tipo di diagramma che mostra l’ora di inizio e di fine di vari eventi.
Questo tutorial spiega come creare un diagramma di Gantt in R utilizzando il pacchetto ggplot2 .
Creazione di un diagramma di Gantt in R utilizzando ggplot2
Supponiamo di avere il seguente set di dati che mostra gli orari di inizio e fine di quattro diversi turni di lavoratori in un negozio:
#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
Per creare un diagramma di Gantt utilizzando ggplot2 che visualizzi gli orari di inizio e fine di ciascun lavoratore, possiamo utilizzare il seguente codice:
#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()
Ciò produce il seguente diagramma di Gantt:
Con alcune modifiche al layout, possiamo migliorare notevolmente l’aspetto di questo diagramma di Gantt:
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')
Ciò produce il seguente grafico:
Inoltre, se desideri impostare i colori esatti da utilizzare nel grafico, puoi utilizzare il seguente codice:
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_color_manual(values = c('pink', 'purple', 'blue'))
Ciò produce il seguente grafico con i colori rosa, viola e blu per rappresentare i diversi tipi di turno:
Utilizza temi personalizzati
Possiamo andare oltre utilizzando temi personalizzati dalla libreria ggthemes .
Ad esempio, possiamo creare un diagramma di Gantt che utilizza un tema ispirato al 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_color_manual(values = c('pink', 'purple', 'blue')) + theme_wsj() + theme(axis.title = element_text())
Oppure potremmo usare un tema ispirato a 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_color_manual(values = c('pink', 'purple', 'blue')) +
theme_economist() +
theme(axis.title = element_text())
O forse un tema ispirato a 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_color_manual(values = c('pink', 'purple', 'blue')) +
theme_fivethirtyeight() +
theme(axis.title = element_text())
Per un elenco completo dei temi disponibili nella libreria ggthemes , consultare la pagina della documentazione .