首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Plotly Dash:有条件地更改datatable单元格颜色

在 Plotly Dash 中,可以使用DataTablestyle_data_conditional属性来有条件地更改单元格颜色。以下是一个示例,展示如何根据数据值来设置DataTable中单元格的颜色:

代码语言:javascript
复制
import dash
import dash_table
import pandas as pd

# 生成示例数据
data = {
    '姓名': ['张三', '李四', '王五'],
    '年龄': [25, 30, 20],
    '分数': [85, 92, 78]
}
df = pd.DataFrame(data)

app = dash.Dash(__name__)

app.layout = dash_table.DataTable(
    id='table',
    columns=[{'name': col, 'id': col} for col in df.columns],
    data=df.to_dict('records'),
    style_data_conditional=[
        # 根据分数设置颜色,分数大于90为绿色,小于60为红色,否则为黄色
        {
            'if': {'column_id': '分数', 'filter_query': '{分数} > 90'},
            'backgroundColor': 'lightgreen'
        },
        {
            'if': {'column_id': '分数', 'filter_query': '{分数} < 60'},
            'backgroundColor': 'lightcoral'
        },
        {
            'if': {'column_id': '分数'},
            'backgroundColor': 'lightyellow'
        }
    ]
)

if __name__ == '__main__':
    app.run_server(debug=True)

在上述代码中,通过style_data_conditional属性来设置条件样式。每个条件是一个字典,其中if键指定了条件,backgroundColor键设置了满足条件时单元格的背景颜色。

  • 'if': {'column_id': '分数', 'filter_query': '{分数} > 90'}表示当列分数中的值大于 90 时,将单元格背景颜色设置为浅绿色。
  • 'if': {'column_id': '分数', 'filter_query': '{分数} < 60'}表示当列分数中的值小于 60 时,将单元格背景颜色设置为浅珊瑚色。
  • 'if': {'column_id': '分数'}表示对于列分数中的所有单元格,如果不满足前面的条件,则将背景颜色设置为浅黄色。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券