このコードを使用して、COLOR名を含む列があるデータフレームをdash_table.DataTable
に表示します。
import dash
import dash_table
import pandas as pd
df = pd.DataFrame(data = dict(COLOR = ['#1f77b4', '#d62728', '#e377c2', '#17becf', '#bcbd22'],
VALUE = [1, 2, 3, 4, 5]))
app = dash.Dash(__name__)
app.layout = html.Div([dash_table.DataTable(id = 'table',
columns = [{"name": i, "id": i} for i in df.columns],
data = df.to_dict('records'))],
style = dict(width = '200px'))
if __name__ == '__main__':
app.run_server()
これが私が得るものです。
個々のセルの背景色(そしておそらくフォントカラー)をそのコンテンツで設定したいが、この列(これは常にテーブルの最初の列)のみを設定したいと思います。
私にはdash_table.DataTable
をplotly.graph_objects.Table
( ---(ドキュメント )に置き換えることができます。これは、よりカスタマイズ可能です。 _dash
ダッシュボードにplotly.graph_objects.Table
を実装できることを提供しました。
バージョン情報:
Python 3.7.0
dash 1.12.0
dash-table 4.7.0
plotly 4.7.0
style_data_conditional
を使用して、各個々のセルの背景色とフォントカラー(および他のいくつかのプロパティ)を定義できます. https://dash.plotly.com/datatable/style 。
import dash
import dash_table
import dash_html_components as html
import pandas as pd
df = pd.DataFrame(data=dict(COLOR=['#1f77b4', '#d62728', '#e377c2', '#17becf', '#bcbd22'],
VALUE=[1, 2, 3, 4, 5]))
app = dash.Dash(__name__)
app.layout = html.Div([
dash_table.DataTable(
id='table',
columns=[{'name': i, 'id': i} for i in df.columns],
data=df.to_dict('records'),
style_data_conditional=[{'if': {'row_index': i, 'column_id': 'COLOR'}, 'background-color': df['COLOR'][i], 'color': df['COLOR'][i]} for i in range(df.shape[0])]
),
], style=dict(width='100px'))
if __name__ == '__main__':
app.run_server()