Python in Excel実践:Matplotlibを使ってガントチャートを作成する

pandas python 1

Excel には便利なグラフ機能が多く用意されていますが、ガントチャートは標準では作成できません。
この記事では、Python in Excel と Matplotlib を使って、タスクの開始日と終了日をもとにガントチャートを作成し、見やすく調整するまでの流れを確認します。

Python in Excelを用いたScatterplotの描画については以下で解説しています。

Python in Excel実践:Seabornで散布図(Scatter Plot)を作成する – Lean Data Office

また、Python in Excelの導入記事、まだご覧になっていない方は以下。

Python in Excelにおけるpandas DataFrameの基本 – Lean Data Office

今回使用するのは、プロジェクトの進行管理を想定した Excel テーブルです。
各行にはタスク名、開始日(Start)、終了日(End)が記載されています。
ガントチャートでは、この期間情報をそのまま視覚化します。

image

Python in Excel の Python セルで、次のコードを実行します。

df = xl("B4:D9", headers=True)

この処理により、Excel 上のテーブルが pandas の DataFrame として定義されます。
以降のガントチャート作成は、この DataFrame を元に進めます。

image

Matplotlib を使ったガントチャートの描画

Matplotlib を使って、ガントチャート用の figure と axis を作成します。
縦軸にはタスクの数に応じた目盛りを設定し、
for ループで各タスクの期間を横棒として描画します。

image

初期状態では、X軸の日付ラベルが重なり、視認性があまり良くありません。
これは Matplotlib が日付目盛りを自動で詰めて表示しようとするためです。

image

日付ラベルの微調整

次の1行を追加することで、X軸の日付ラベルを回転させます。

plt.xticks(rotation=45)
image

これにより、日付が重ならず、ガントチャートとして読みやすい表示になります。

image

軸ラベルとタイトルを追加する

最後に、グラフとしての情報を補うため、
X軸・Y軸のラベルとタイトルを設定します。

ax.set_xlabel("Dates")
ax.set_ylabel("Task")
ax.set_title(xl("B3"))
image

すべての設定が反映されると、
タスク名・期間・日付軸が明確に分かるガントチャートが完成します。

Excel には標準で用意されていないガントチャートも、
Python in Excel と Matplotlib を使うことで、
データをそのまま活用しながら作成できます。

image

まとめ

Matplotlib を使えば、Excel に用意されていないガントチャートも、Python in Excel 上で作成できます。
日付の扱いや軸ラベルを少し調整するだけで、プロジェクトの進行状況を分かりやすく可視化できます。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。