Ggplot2 を使用して r でガント チャートを作成する方法


ガント チャートは、さまざまなイベントの開始時間と終了時間を示すチャートの一種です。

このチュートリアルでは、 ggplot2パッケージを使用して R でガント チャートを作成する方法を説明します。

ggplot2 を使用して R でガント チャートを作成する

店舗での 4 人の異なる従業員のシフトの開始時刻と終了時刻を示す次のデータ セットがあるとします。

 #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

ggplot2 を使用して各ワーカーの開始時間と終了時間を視覚化するガント チャートを作成するには、次のコードを使用できます。

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

これにより、次のガント チャートが作成されます。

レイアウトにいくつかの調整を加えることで、このガント チャートの見栄えを大幅に向上させることができます。

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

これにより、次のグラフが生成されます。

さらに、グラフで使用する正確な色を設定したい場合は、次のコードを使用できます。

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

これにより、さまざまなシフト タイプを表すピンク、紫、青の色で次のグラフが生成されます。

カスタムテーマを使用する

ggthemesライブラリのカスタム テーマを使用すると、さらに進めることができます。

たとえば、ウォール ストリート ジャーナルからインスピレーションを得たテーマを使用したガント チャートを作成できます。

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

または、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())

あるいは、ファイブ サーティ エイトにインスパイアされたテーマかもしれません。

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

ggthemesライブラリで利用可能なテーマの完全なリストについては、 ドキュメント ページを参照してください。

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です