Pythonでガントチャートの作成する
/
Pandasでガントチャートの作成します。
# ライブラリのインストール
下記のコマンドを実行して再起動する
!pip install plotly
!pip install plotly_express
!jupyter labextension install @jupyterlab/plotly-extension
# ガントチャートの作成
# 単純プロット
import pandas as pd
import plotly.express as px
import plotly.io as pio
# pxでガントチャートを作成
# そのまま作成すると縦軸が上下逆さまに
# ガントチャートを作成するデータフレーム
df = pd.DataFrame([
dict(
Task='Job A', # ジョブの名称
Start='2022-01-01', # 開始日
Finish='2022-02-28', # 終了日
),
dict(
Task='Job B',
Start='2022-03-05', # 開始日
Finish='2022-04-15', # 終了日
),
dict(
Task='Job C',
Start='2022-02-20', # 開始日
Finish='2022-05-30', # 終了日
)
])
print(df)
# Task Start Finish
# 0 Job A 2022-01-01 2022-02-28
# 1 Job B 2022-03-05 2022-04-15
# 2 Job C 2022-02-20 2022-05-30
fig = px.timeline(
df, # 使用するデータフレーム
x_start='Start', x_end='Finish', # 横軸の開始・終了の列名
y='Task', # 縦軸の列名
)
# グラフ全体とホバーのフォントサイズ変更
fig.update_layout(font_size=20, hoverlabel_font_size=20)
fig.show()
# # グラフ保存
# prefix = 'plotly-gantt-charts' # 保存ファイル名の接頭辞
# save_name = f"{prefix}_simple"
# pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
# pio.write_html(fig, f"{save_name}.html")
# pio.write_image(fig, f"{save_name}.png")
# 判例によって色分けプロット
import pandas as pd
import plotly.express as px
import plotly.io as pio
# colorで色分けする(人名、リソース)
# ガントチャートを作成するデータフレーム
df = pd.DataFrame([
dict(
Task='Job A', # ジョブの名称
Start='2022-01-01', Finish='2022-02-28', # 開始年と終了年
Resource='Alex', # リソース名
Time=60, # 作業時間
People=3, # 人工
),
dict(
Task='Job B',
Start='2022-03-05', Finish='2022-04-15',
Resource='Alex', # リソース名
Time=60, # 作業時間
People=3, # 人工
),
dict(
Task='Job C',
Start='2022-02-20', Finish='2022-05-30',
Resource='Max', # リソース名
Time=60, # 作業時間
People=3, # 人工
)
])
print(df)
# Task Start Finish Resource Time People
# 0 Job A 2022-01-01 2022-02-28 Alex 60 3
# 1 Job B 2022-03-05 2022-04-15 Alex 60 3
# 2 Job C 2022-02-20 2022-05-30 Max 60 3
fig = px.timeline(
df, # 使用するデータフレーム
x_start='Start', x_end='Finish', # 横軸の開始・終了の列名
y='Task', # 縦軸の列名
color='Resource', # 色分けをリソースにする
)
# グラフ全体とホバーのフォントサイズ変更
fig.update_layout(font_size=20, hoverlabel_font_size=20)
# 縦軸の向きを逆にする
fig.update_yaxes(autorange='reversed')
fig.show()
# # グラフ保存
# prefix = 'plotly-gantt-charts' # 保存ファイル名の接頭辞
# save_name = f"{prefix}_color_Resource"
# pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
# pio.write_html(fig, f"{save_name}.html")
# pio.write_image(fig, f"{save_name}.png")
# 判例によって任意の色分けプロット
import pandas as pd
import plotly.express as px
import plotly.io as pio
# color_discrete_sequenceで色を変更
# ガントチャートを作成するデータフレーム
df = pd.DataFrame([
dict(
Task='Job A', # ジョブの名称
Start='2022-01-01', Finish='2022-02-28', # 開始年と終了年
Resource='Alex', # リソース名
Time=60, # 作業時間
People=3, # 人工
),
dict(
Task='Job B',
Start='2022-03-05', Finish='2022-04-15',
Resource='Alex', # リソース名
Time=60, # 作業時間
People=3, # 人工
),
dict(
Task='Job C',
Start='2022-02-20', Finish='2022-05-30',
Resource='Max', # リソース名
Time=60, # 作業時間
People=3, # 人工
)
])
print(df)
# Task Start Finish Resource Time People
# 0 Job A 2022-01-01 2022-02-28 Alex 60 3
# 1 Job B 2022-03-05 2022-04-15 Alex 60 3
# 2 Job C 2022-02-20 2022-05-30 Max 60 3
fig = px.timeline(
df, # 使用するデータフレーム
x_start='Start', x_end='Finish', # 横軸の開始・終了の列名
y='Task', # 縦軸の列名
color='Resource', # 色分けをリソースにする
# 色の変更。余った色は反映されない
color_discrete_sequence=('violet', 'orange', 'green')
)
# グラフ全体とホバーのフォントサイズ変更
fig.update_layout(font_size=20, hoverlabel_font_size=20)
# 縦軸の向きを逆にする
fig.update_yaxes(autorange='reversed')
fig.show()
# # グラフ保存
# prefix = 'plotly-gantt-charts' # 保存ファイル名の接頭辞
# save_name = f"{prefix}_color_discrete_sequence"
# pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
# pio.write_html(fig, f"{save_name}.html")
# pio.write_image(fig, f"{save_name}.png")
# 任意の情報も付属させる
import pandas as pd
import plotly.express as px
import plotly.io as pio
# color_discrete_sequenceで色を変更
# ガントチャートを作成するデータフレーム
df = pd.DataFrame([
dict(
Task='Job A', # ジョブの名称
Start='2022-01-01', Finish='2022-02-28', # 開始年と終了年
Resource='Alex', # リソース名
Time=60, # 作業時間
People=3, # 人工
),
dict(
Task='Job B',
Start='2022-03-05', Finish='2022-04-15',
Resource='Alex', # リソース名
Time=60, # 作業時間
People=3, # 人工
),
dict(
Task='Job C',
Start='2022-02-20', Finish='2022-05-30',
Resource='Max', # リソース名
Time=60, # 作業時間
People=3, # 人工
)
])
print(df)
# Task Start Finish Resource Time People
# 0 Job A 2022-01-01 2022-02-28 Alex 60 3
# 1 Job B 2022-03-05 2022-04-15 Alex 60 3
# 2 Job C 2022-02-20 2022-05-30 Max 60 3
fig = px.timeline(
df, # 使用するデータフレーム
x_start='Start', x_end='Finish', # 横軸の開始・終了の列名
y='Task', # 縦軸の列名
color='Resource', # 色分けをリソースにする
# 色の変更。余った色は反映されない
color_discrete_sequence=('violet', 'orange', 'green'),
hover_data=df[["Time", "People"]] # グラフに情報を付与
)
# グラフ全体とホバーのフォントサイズ変更
fig.update_layout(font_size=20, hoverlabel_font_size=20)
# 縦軸の向きを逆にする
fig.update_yaxes(autorange='reversed')
fig.show()
# # グラフ保存
# prefix = 'plotly-gantt-charts' # 保存ファイル名の接頭辞
# save_name = f"{prefix}_color_discrete_sequence"
# pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
# pio.write_html(fig, f"{save_name}.html")
# pio.write_image(fig, f"{save_name}.png")
# まとめ
Pandasでガントチャートの作成しました.