Hoe u een gantt-diagram in r maakt met ggplot2


Een Gantt-diagram is een soort diagram dat de begin- en eindtijden van verschillende gebeurtenissen weergeeft.

In deze zelfstudie wordt uitgelegd hoe u een Gantt-diagram in R maakt met behulp van het ggplot2- pakket.

Een Gantt-diagram maken in R met ggplot2

Laten we zeggen dat we de volgende gegevensset hebben die de begin- en eindtijden toont van vier verschillende ploegendiensten in een winkel:

 #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

Om een Gantt-diagram te maken met ggplot2 dat de begin- en eindtijden van elke werknemer visualiseert, kunnen we de volgende code gebruiken:

 #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()

Dit levert het volgende Gantt-diagram op:

Met een paar aanpassingen aan de lay-out kunnen we dit Gantt-diagram er veel beter uit laten zien:

 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')

Dit levert de volgende grafiek op:

Als u bovendien de exacte kleuren wilt instellen die u in het diagram wilt gebruiken, kunt u de volgende code gebruiken:

 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'))

Dit levert de volgende grafiek op met de kleuren roze, paars en blauw om de verschillende ploegendiensten weer te geven:

Gebruik aangepaste thema’s

We kunnen verder gaan door aangepaste thema’s uit de ggthemes- bibliotheek te gebruiken.

We kunnen bijvoorbeeld een Gantt-diagram maken dat een op de Wall Street Journal geïnspireerd thema gebruikt:

 #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())

Of we kunnen een thema gebruiken dat is geïnspireerd door 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())

Of misschien een door Five Thirty Eight geïnspireerd thema:

 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())

Zie de documentatiepagina voor een volledige lijst met thema’s die beschikbaar zijn in de ggthemes- bibliotheek.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert