Q&A
前提
Pythonのplotlyの機能を使ってガントチャートが作りたいと思っています。
以下のように、縦軸をTaskの名前順で並べ、Resourseで色付けしています。
実現したいこと
以下のように、ResourseがMax(赤色)の表示を消した際に、TaskCの行が表示されないようにしたいです。
発生している問題
以下のように、色の表示を消してもTaskCが残っています。
該当のソースコード
縦軸をTaskの名前順になるようにplotlyの以下のURL内のコードを改良したものです。
https://plotly.com/python/gantt/
Python
1import pandas as pd 2import plotly.express as px 3import plotly.io as pio 4# DataFrame 5df = pd.DataFrame([ 6 dict( 7 Task='Job A', # Job Name 8 Start='2022-01-01', Finish='2022-02-28', 9 Resource='Alex', # Resource Name 10 ), 11 dict( 12 Task='Job B', 13 Start='2022-03-05', Finish='2022-04-15', 14 Resource='Alex', 15 ), 16 dict( 17 Task='Job C', 18 Start='2022-02-20', Finish='2022-05-30', 19 Resource='Max', 20 ), 21 dict( 22 Task='Job D', 23 Start='2022-04-05', Finish='2022-06-15', 24 Resource='Alex', 25 ) 26]) 27 28def plot_guntt(DataFrame,y_order,colors): 29 A = sorted(df[y_order].unique().tolist()) 30 fig = px.timeline(DataFrame, x_start='Start', x_end='Finish',y=y_order, color=colors) 31 fig.update_yaxes(categoryorder='array', categoryarray=A[::-1]) 32 return fig 33 34fig = plot_guntt(df,'Task','Resource') 35fig.show()
試したこと
以下のようにResourse(色分けしたもの)を基準に縦軸を並べれば、Maxを消した際にTaskCが消えてくれます。
しかし、縦軸はTaskの名前順で並べたいと思っています。
バージョン
Python == 3.6.15
plotly == 4.10.0
あなたの回答
tips
プレビュー