06.7.11
ガントチャートで短期プロジェクトを整理
ax.broken_barh([(開始, 長さ)], (y 位置, 太さ)) が 1 チーム分の区間を一度に描き、ax.axvline で縦の点線を引けば「仕様確定」「テスト完了」のような節目を重ねられます。読み終えると、4 チーム × 12 週のタスクから第 8〜9 週に開発・QA・CS の 3 チームが同時に動く混雑を読み取り、自分のプロジェクトの区間リストを同じ形で描けるようになります。直感 #
四半期のリリース準備で、企画は第 1〜3 週と第 5〜6 週、開発は第 2〜6 週と第 8〜10 週、と各チームが 2 つずつ作業期間を持っているとします。表で読むと「第 8 週に何チームが動いているか」を数えるのに時間がかかりますが、ガントチャートなら第 8 週の位置で縦に線を引いて棒が何本あるかを見れば済みます。棒の長さが期間です。棒の縦位置が担当チーム、縦の点線が締め切りやマイルストーンで、棒が点線を越えていれば、そのマイルストーンまでに作業が終わらない予定だと 1 秒で分かります。
Python で描く #
次のコードは 4 チームのタスクを (開始週, 長さ) のタプルで持ち、broken_barh でチームごとに横棒を描きます。第 3 週と第 9 週には axvline の縦線を立てます。
| |

実行結果の読み方 #
横棒の長さがタスクの期間、縦位置が担当チームです。第 8〜9 週は開発・QA・CS の棒が縦に 3 本重なっており、この時期にリソースが集中していることが読めます。点線の「テスト完了」(第 9 週)を開発の第 2 区間(第 8〜10 週)と CS の第 2 区間(第 7〜10 週)が越えているので、節目に対して 1 週間の遅れが予定に組み込まれていると分かります。週単位より細かく見たいときは、X 軸を pd.Timestamp の日付にして mdates.DateFormatter で日付表示に切り替えます。
使いどころと落とし穴 #
ガントチャートは、タスクが 4〜30 本程度の短期プロジェクトで、開始・終了と並行度を関係者と共有するのに向いています。タスク間の依存関係(A が終わらないと B が始まらない)やクリティカルパスは棒だけでは表せないので、本格的な工程管理が必要なら依存関係を扱える専用ツールに任せます。100 本を超えるタスクを 1 枚に詰めると縦長になって俯瞰できないため、フェーズごとに図を分けるか、マイルストーンだけを描く要約図を別に用意してください。色に「担当」や「ステータス」の意味を持たせるなら、ax.legend か ax.text で色の意味を明記しないと読者は装飾として読み飛ばします。
- バーコードタイムライン — 縦線でイベント頻度を瞬時に把握
- 横向き棒グラフ — ラベルが長い項目を横向きで比較
- カレンダーヒートマップ — 年間の日別指標を曜日×週で俯瞰