PlotlyでTimeline Chartを描く - aktnk/til GitHub Wiki
一日のうちどの時間帯だけ利用しているか見える化したい。調べてみると、PythonのPlotlyが提供するtimelineを使うでグラフ化できそう。
- plotly.express.timelineにAPIの説明あり
- 表示するグラフについて設定を変更することで、軸目盛の位置、軸の太さ等いろいろ変更できる
- 使い方
- Plotlyモジュールをインストール
> pip install plotly
plotly.express
をインポートし、最低限下記の引数を与えることで、timelineチャートを描くことができるimport plotly.express as px fig = px.timeline(df,x_start,x_end,y,color,range_x,range_y,title,height,width) fig.show()
- df : データとしてPandasのdataframe、配列や辞書形式でもOK
- x_start : X軸方向に描くグラフの開始点をdataframeのカラム名や配列等
- x_end : X軸方向に描くグラフの終了点をdataframeのカラム名や配列等
- y : y軸に沿って描くグラフの位置をdataframeのカラム名や配列等
- color : グラフを色分けする際に使うデータをdataframeのカラム名や配列等
- ranage_x : 表示するx軸の範囲を指定するリスト
[(x軸の開始値),(x軸の終了値)]
- range_y : 表示するy軸の範囲を指定するリスト
[(y軸の開始値),(y軸の終了値)]
- title : グラフのタイトルとして表示する文字列
- height : グラフの高さpx
- width : グラフの幅px
- 注意点
- x_start,x_end,yの値として日時データを与える場合、Pandasのdataframeの当該カラムは
datetime64[ns]
である必要がある - x軸として一日のうちの時間を与える場合、x_start,x_endを同じ日にちで与えること
- y軸の範囲として一か月分のデータを与える場合、
range_y=[(その月の1日), (その月の月末日)]
を与えること - 表示したフラフのy軸方法の幅が正しく表示されない場合、
fig.update_traces(width=(x軸の範囲)*60*60*1000)
を与えること - x軸方向・y軸方向に補助線を引く場合、
fig.update_xaxes(…)、fig.update_yaxes(…)
をfig.show()の前に呼び出すことfig = px.timeline(...) fig.update_xaxes(showline=True, linecolor='grey', linewidth=2, color='grey', ticks='outside', tickcolor='lightgrey', tickformat='%H:%M', showgrid=True, girdash='dot', gridcolor='lightgrey') fig.update_yaxes(showline=True, linecolor='grey', linewidth=2, color='grey', ticks='outside', tickcolor='lightgrey', tickformat="'%y/%m/%d", showgrid=True, girdash='dot', gridcolor='lightgrey') fig.show()
- x_start,x_end,yの値として日時データを与える場合、Pandasのdataframeの当該カラムは
- Plotlyモジュールをインストール