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

如何在Vega中基于单数据集用pie transform创建分组独立饼图?

实现分组独立饼图作为网络图节点

要让每个group生成独立的饼图,核心是在pie变换中指定分组字段,结合窗口变换计算组内占比,具体修改如下:

关键修改步骤

  • 先通过window变换按group分组,计算每组内field的总和,为饼图扇区占比计算提供基础
  • 在pie变换中添加groupby参数指定group字段,让每个组独立计算饼图的起始/结束角度
  • 为不同组的饼图设置独立的坐标位置(后续可替换为网络图布局的节点坐标)

修改后的完整Vega规范

{
  "$schema": "https://vega.github.io/schema/vega/v5.json",
  "description": "分组独立饼图示例",
  "width": 400,
  "height": 200,
  "autosize": "none",
  "data": [
    {
      "name": "table",
      "values": [
        {"id": 1, "field": 4, "group": 1},
        {"id": 2, "field": 6, "group": 1},
        {"id": 3, "field": 10, "group": 1},
        {"id": 4, "field": 3, "group": 2},
        {"id": 5, "field": 7, "group": 2},
        {"id": 6, "field": 8, "group": 2}
      ],
      "transform": [
        {
          "type": "window",
          "partitionby": ["group"],
          "ops": ["sum"],
          "fields": ["field"],
          "as": ["group_total"]
        },
        {
          "type": "pie",
          "field": "field",
          "groupby": ["group"]
        }
      ]
    }
  ],
  "scales": [
    {
      "name": "color",
      "type": "ordinal",
      "domain": {"data": "table", "field": "id"},
      "range": {"scheme": "category20"}
    }
  ],
  "marks": [
    {
      "type": "arc",
      "from": {"data": "table"},
      "encode": {
        "enter": {
          "startAngle": {"field": "startAngle"},
          "endAngle": {"field": "endAngle"},
          "fill": {"scale": "color", "field": "id"},
          "outerRadius": {"value": 50},
          "x": {"signal": "datum.group === 1 ? width/4 : width*3/4"},
          "y": {"signal": "height / 2"},
          "opacity": {"value": 0.8}
        }
      }
    }
  ]
}

代码说明

  1. window变换:按group分组计算每组的field总和,确保每个饼图的扇区占比基于组内数据,而非全部数据
  2. pie变换的groupby:指定group为分组字段,Vega会自动为每个组单独计算饼图角度
  3. 饼图位置控制:通过signal根据group值设置不同的x坐标,实现两个饼图的分离展示,后续可将此处替换为网络图布局输出的节点x/y坐标

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:42:53