Python Plotly Dash:单个单元格的数据表背景色
我在一个Python Plotly Dash:单个单元格的数据表背景色,python,datatable,background-color,plotly-dash,Python,Datatable,Background Color,Plotly Dash,我在一个dash_表中显示。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
dash_表中显示。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()
这就是我得到的:
我想设置每个单元格的背景色(可能还有字体颜色)及其内容,但仅针对该列(始终是表格的第一列),以便获得以下结果:
对我来说,可以用plotly.graph\u objects.table
()替换dash\u table.DataTable
,这可能更易于定制;前提是我可以在仪表板中实现绘图.graph\u objects.Table
版本信息:
Python 3.7.0
dash 1.12.0
dash-table 4.7.0
plotly 4.7.0
您可以使用style\u data\u conditional
定义每个单元格的背景色和字体颜色(以及若干其他属性),请参阅
你很接近了,我更新了这个问题,使之更精确:它必须只对该列(始终是第一列)的背景着色,而不是对表的其余部分着色。我认为对你添加的代码做一个小小的修改就足够了,这正是我想要的,太棒了!
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()