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

如何在Vega-Lite表格可视化中添加每行总计列?

在Vega-Lite表格中添加每行总计列

要实现每行显示总计的表格,需先计算每行数值总和,再调整数据格式适配表格展示,具体操作如下:

  1. 计算每行总计:通过transform的calculate方法,将每行所有数值列相加,生成名为"总计"的新字段。
  2. 转换数据格式:用fold将宽表转为长表,把新增的"总计"列包含在内,方便表格按列展示所有字段。
  3. 配置表格展示:将mark设为table,通过encoding配置行、列和文本内容,实现示例中的表格效果。

修改后的完整代码如下:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "values": [
      {"Category": "A", "1990": 10, "2000": 20, "2010": 30, "2020": 40},
      {"Category": "B", "1990": 15, "2000": 25, "2010": 35, "2020": 45},
      {"Category": "C", "1990": 5, "2000": 15, "2010": 25, "2020": 35}
    ]
  },
  "transform": [
    {"calculate": "datum['1990'] + datum['2000'] + datum['2010'] + datum['2020']", "as": "总计"},
    {"fold": ["1990", "2000", "2010", "2020", "总计"], "as": ["年份/总计", "数值"]}
  ],
  "mark": "table",
  "encoding": {
    "row": {"field": "Category", "type": "nominal", "title": "类别"},
    "column": {"field": "年份/总计", "type": "nominal"},
    "text": {"field": "数值", "type": "quantitative"}
  },
  "config": {
    "table": {
      "header": {"labelFontSize": 12, "titleFontSize": 14},
      "cell": {"labelFontSize": 12}
    }
  }
}

关键说明

  • calculate语句中,datum['列名']用于引用每行对应列的数值,可根据实际列名调整相加的字段。
  • fold转换时,必须将"总计"列加入折叠字段列表,才能让它作为表格的一列显示。
  • 通过row和column编码实现行列布局,text编码用于显示单元格的数值内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:59:58