ガントチャートは、プロジェクトのタスクや進捗状況を時系列で視覚的に表現するための重要なツールです。タスクの開始日、終了日、担当者などを横軸に沿って棒状に表示することで、プロジェクト全体の進行状況を一目で把握することができます。
ガントチャートの作成にあたってはtimevisパッケージを利用します。
timevisパッケージの詳細については、こちらをご覧ください。
プロジェクトメニューから、「Rパッケージの管理」を選択します。
Rパッケージの管理のダイアログが開くので、「パッケージをインストール」を選択し、「timevis」を入力してインストールボタンをクリックします。
確認のダイアログが表示されるため、OKボタンをクリックします。
今回は「project_schedule」というプロジェクト管理のためのサンプルデータを使用します。データはこちらからダウンロードいただけるようになっています。
このデータは、プロジェクトのタスクスケジュールを管理するためのもので、1行が1つのタスクを表し、以下のような列があります:
レポートの右横にある+ボタンを押して、「ノートを作成」をクリックします。
するとノートのウィンドウが開きます。
ガントチャートを可視化するためにはRスクリプトを書く必要があるため、ノートのプラスボタンから「Rスクリプト」を選択します。
このRスクリプトの中に、下記のスクリプトをコピー&ペーストしてください。
# ライブラリの読み込み
library(timevis)
library(dplyr)
# データの準備(timevis用にデータを整形)
timeline_data <- project_schedule %>%
mutate(
content = task,
start = start_date,
end = end_date,
group = team,
# プログレスバーのスタイル設定
style = paste0(
"background-color: rgba(33, 150, 243, 0.3); ",
"height: 30px; ",
"font-family: 'Hiragino Sans', sans-serif; ",
"border-radius: 5px; ",
"border-left: 4px solid rgb(33, 150, 243);"
)
) %>%
select(content, start, end, group, style)
# ガントチャートの作成
timevis(
data = timeline_data,
options = list(
locale = "ja", # 日本語の日付表示
orientation = "both", # グループとタイムラインの両方を表示
stack = TRUE, # タスクを積み重ねて表示
showCurrentTime = FALSE, # 現在時刻の線を非表示
height = "500px", # 高さの指定
horizontalScroll = TRUE, # 横スクロールを有効化
verticalScroll = TRUE, # 縦スクロールを有効化
zoomKey = "ctrlKey", # Ctrlキーを押しながらスクロールでズーム
start = min(project_schedule$start_date), # 表示開始日
end = max(project_schedule$end_date) # 表示終了日
),
groups = data.frame(
id = unique(project_schedule$team),
content = unique(project_schedule$team),
style = "font-family: 'Hiragino Sans', sans-serif;" # グループラベルの日本語フォント設定
)
)
自分のデータで使用する際には、以下のコード部分を修正してください:
日本語の文字化けを回避するために、日本語をサポートしているフォントをfont-familyに指定
Rスクリプトを貼り付けることができたら、「プレビュー」ボタンをクリックします。
チャートのサイズを大きくしたい場合は、チャートをクリックした後に拡大ボタンをクリックします。
プレビューすると、以下のような特徴を持つガントチャートが表示されます:
timevisパッケージでのガントチャート作成時に、以下のオプションを使ってチャートの設定を変更することが可能です。
これらのオプションは、timevis関数の中のoptions = listの括弧の中にカンマ区切りで記載していくこととなります。
例えば、以下の2つのオプションを変更することで、タイムラインのラベルを上のみに表示し、現在の時刻を表す縦線を表示しています。