You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#实现Plotly.NET表格的单元格值依赖着色?

在Plotly.NET.CSharp中实现值依赖的单元格着色

可以实现值依赖的单元格着色。Plotly.NET.CSharp虽然API封装和F#版本有差异,但底层对接的是Plotly.js的配置模型,你可以通过直接为TableCells的Fill.Color传入二维颜色数组,实现逐单元格的颜色设置,无需依赖style()方法。

实现步骤与代码示例

以下是复刻官方F#示例的C#代码,通过数值区间映射不同填充色:

using System;
using System.Collections.Generic;
using Plotly.NET.CSharp;
using Plotly.NET.CSharp.Traces;

class Program
{
    static void Main(string[] args)
    {
        // 定义表格数据
        var headerValues = new List<string> { "姓名", "数学", "英语", "物理" };
        var rowValues = new List<List<object>>
        {
            new List<object> { "张三", 92, 85, 78 },
            new List<object> { "李四", 76, 90, 88 },
            new List<object> { "王五", 88, 79, 95 }
        };

        // 生成与数值对应的单元格颜色数组
        var cellColors = new List<List<string>>();
        foreach (var row in rowValues)
        {
            var rowColors = new List<string>();
            foreach (var item in row)
            {
                if (item is int score)
                {
                    // 根据分数区间映射颜色
                    rowColors.Add(score switch
                    {
                        >= 90 => "#76D7C4",
                        >= 80 => "#F9E79F",
                        _ => "#F1948A"
                    });
                }
                else
                {
                    // 非数值单元格使用白色填充
                    rowColors.Add("#FFFFFF");
                }
            }
            cellColors.Add(rowColors);
        }

        // 创建表格Trace并配置着色
        var tableTrace = Trace2D.Table()
            .SetHeader(new TableHeader()
                .SetValues(headerValues)
                .SetFill(new TableFill().SetColor("#2ECC71"))) // 表头统一着色
            .SetCells(new TableCells()
                .SetValues(rowValues)
                .SetFill(new TableFill().SetColor(cellColors))); // 传入颜色数组实现逐单元格着色

        // 生成并展示图表
        Chart2D.Chart.FromTrace(tableTrace)
            .Show();
    }
}

关键说明

  • 核心逻辑是TableFill.SetColor()方法支持接收二维字符串数组,数组中的每个元素对应表格中一个单元格的填充色,位置与表格数据严格对应。
  • 若需要渐变色彩(而非区间色),可以通过数值归一化后计算RGB值生成渐变颜色数组,比如将0-100的分数映射从红色到绿色的渐变。
  • 确保颜色数组的维度和表格数据完全匹配,避免渲染异常。

内容的提问来源于stack exchange,提问作者GetFuzzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:14:56