【Python】plotlyを使った動的グラフの作成の基礎・基本−2 go.Table()を使ったテーブル(表)の作成

以前作成したplotlyの基本に関する記事の応用編となります。以前の記事のリンク先はこちらです。

今回は、go.Table()を使ったテーブルの作成方法について解説します。

メソッド

使用するメソッドは下記の通りです。

go.Table(header = dict(values=1次元配列), cells = dict(values=2次元配列))

公式ドキュメントのリンク先はこちらです。パッケージのドキュメントリンク先はこちらです。

引数

・上記の通り、主に使用する引数は、「header」と「cells」の2つになります。

・これらの引数はともに辞書型で定義する必要があります。

引数1:header=dict(values=一次元配列)

・テーブルのカラム名を定義します。

・dict()関数のキーワード引数valuesに一次元配列で渡します。

引数2:cells=dict(values=二次元配列)

・テーブルの各セルの値を定義します。

カラムの個数分のリストをvaluesに引き渡します。

・dict()関数のキーワード引数valuesに二次元配列で渡します。

参考例

参考例として3行2列の簡単なテーブルを作成してみます。

3行2列の簡単なテーブルの作成例
import plotly.graph_objects as go
trace = go.Table(header=dict(values=['col1', 'col2']),
                 cells=dict(values=[['row1-1','row2-1'],['row2-1','row2-2']]))
fig = go.Figure()
fig.add_trace(trace)
fig.show()
作成例イメージ

次に、列数を1つ増やして3行3列の簡単なテーブルを作成してみます。

3行3列の簡単なテーブルの作成例
import plotly.graph_objects as go
trace = go.Table(header=dict(values=['col1', 'col2', 'col3']),
                 cells=dict(values=[['row1-1','row2-1'],['row1-2','row2-2'],['row1-3','row2-3']])) # カラムが3個あるので、3つのリストをvaluesに引き渡しています。
fig = go.Figure()
fig.add_trace(trace)
fig.show()
作成例イメージ

DataFrameを使ってテーブルを作成

DataFrameを使ってテーブルを作成する際のポイントは、カラム名(header)とセル(cells)への入力値のそれぞれに対して下記を留意下さい。

引数1:header=dict(values=df.columns)

・dataframeのカラムを取得してvaluesに引き渡します。

引数2:cells=dict(values=[df.iloc[:,i] for i in range(len(df.columns))])

・dataframeの各列を内包表記を使ってリストに抽出し、valuesに引き渡します。

コード例:日経平均株価テーブルの作成
import yfinance as yf
import pandas_datareader.data as pdr
yf.pdr_override()
import datetime
today = datetime.datetime.now().date()
code = '^N225'
start = today - datetime.timedelta(days=10)
end = today
df = pdr.get_data_yahoo(code,start,end).sort_index().reset_index().round(2)
df['Date'].dt.strftime('%Y年%m月%d日')
header = df.columns
cells = [df.iloc[:,i] for i in range(len(df.columns))]

import plotly.graph_objects as go
fig = go.Figure()
trace = go.Table(header=dict(values=header),
                 cells=dict(values=cells))
fig.add_trace(trace)
fig.show()
実行結果

コメント

タイトルとURLをコピーしました