So erstellen Sie ein Gantt-Diagramm in R mit ggplot2

Von Fabian
Kategorie: R
Tags: ggplot2
Lesezeit: 3 Minuten

Ein Gantt-Diagramm ist eine Art Diagramm, das die Start- und Endzeiten verschiedener Ereignisse anzeigt.

In diesem Tutorial wird erläutert, wie Sie mit dem Paket ggplot2 ein Gantt-Diagramm in R erstellen.

Erstellen eines Gantt-Diagramms in R mit ggplot2

Angenommen, wir haben den folgenden Datensatz, der die Start- und Endzeiten für die Schichten von vier verschiedenen Arbeitern in einem Geschäft zeigt:

#Dataframe erstellen
data <- data.frame(name = c ('Bob', 'Greg', 'Mike', 'Andy'), 
  Start = c(4, 7, 12, 16),
  Ende = c(12, 11, 8, 22),
  shift_type = c('früh', 'mittags', 'mittags', 'spät')
)

data

#  name start end shift_type
#1 Bob      4  12       früh
#2 Greg     7  11     mittags
#3 Mike    12   8     mittags
#4 Andy    16  22       spät

Um mit ggplot2 ein Gantt-Diagramm zu erstellen, das die Start- und Endzeiten für jeden Worker visualisiert, können wir den folgenden Code verwenden:

#installiere (falls nicht bereits installiert) und lade ggplot2
if(!require(ggplot2)){install.packages ('ggplot2')}

#Erstellen Sie ein Gantt-Diagramm, das die Start- und Endzeit für jeden Mitarbeiter anzeigt
ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) + geom_segment()

Dies erzeugt das folgende Gantt-Diagramm:

Beispiel für ein Gantt-Diagramm in R mit ggplot2

Mit ein paar Änderungen am Layout können wir dieses Gantt-Diagramm viel besser aussehen lassen:

ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
      theme_bw() + #Verwenden des ggplot Themes mit schwarzen Gitterlinien und weißem Hintergrund
      geom_segment(size = 8) + # Erhöhen Sie die Linienbreite der Segmente im Diagramm
      labs(title = 'Worker Schedule', x = 'Time', y = 'Worker Name')

Dies ergibt die folgende Tabelle:

Tabelle Gantt R

Wenn Sie außerdem die genauen Farben definieren möchten, die im Diagramm verwendet werden sollen, können Sie den folgenden Code verwenden:

ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
      theme_bw() + #use ggplot theme mit schwarzen Gitterlinien und weißem Hintergrund
      geom_segment (size = 8) + # Erhöhen Sie die Linienbreite der Segmente im Diagramm
      labs(title = 'Worker Schedule', x = 'Time', y = 'Worker Name') +
      scale_colour_manual(values = c('pink', 'purple', 'blue'))

Dadurch wird das folgende Diagramm mit den Farben Pink, Lila und Blau erstellt, um die verschiedenen Verschiebungstypen darzustellen:

Gantt-Diagramm in R mit benutzerdefinierten Farben in ggplot2

Benutzerdefinierte Themen verwenden

Wir können noch einen Schritt weiter gehen, indem wir benutzerdefinierte Themen aus der ggthemes- Bibliothek verwenden.

Zum Beispiel können wir ein Gantt-Diagramm erstellen, das ein vom Wall Street Journal inspiriertes Thema verwendet:

#Laden Sie die ggthemes Bibliothek
Bibliothek (ggthemes)

#Streudiagramm mit Wall Street Journal-Thema erstellen
ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw() +
  geom_segment(Größe = 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())

Gantt-Diagramm in R mit Wall Street Journal-Thema

Oder wir könnten ein von The Economist inspiriertes Thema verwenden:

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

Gantt-Diagramm in R mit ggplot2

Oder vielleicht ein Thema, das von Five Thirty Eight inspiriert wurde:

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

Gantt-Diagramm in R mit dem Thema Fünfunddreißig

Eine vollständige Liste der in der ggthemes-Bibliothek verfügbaren Themen finden Sie auf der Dokumentationsseite.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: