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

Vega-Lite基于双数据集实现同日期维度堆叠柱状图(Power BI Deneb适用)

Vega-Lite 多数据集同月份堆叠实现方案(无需合并为单数据集)

核心原理

Vega-Lite 原生支持多数据集独立声明,只需为不同数据集配置统一的维度编码规则并开启堆叠属性,引擎会自动完成同维度数值的堆叠计算,无需提前合并数据集,完全兼容Power BI的Deneb插件。

具体实现步骤

  • 第一步:在 Deneb 中直接导入两个原始数据集,分别命名为历史数据(今日前统计值)和预测数据(今日后统计值),无需做Power Query层面的字段拼接或合并操作。
  • 第二步:编写Vega-Lite Spec,通过layer分别加载两个数据集,配置统一的月份维度编码和堆叠参数,示例代码如下:
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "layer": [
    // 第一层:历史数据
    {
      "data": {"name": "历史数据"},
      "mark": "bar",
      "encoding": {
        "x": {
          "field": "日期",
          "type": "temporal",
          "timeUnit": "yearmonth",
          "title": "月份"
        },
        "y": {
          "field": "统计值",
          "type": "quantitative",
          "stack": true,
          "title": "数值"
        },
        "color": {
          "datum": "历史值",
          "scale": {"range": ["#2563eb", "#f97316"]},
          "legend": {"title": "数据类型"}
        }
      }
    },
    // 第二层:预测数据
    {
      "data": {"name": "预测数据"},
      "mark": "bar",
      "encoding": {
        "x": {
          "field": "日期",
          "type": "temporal",
          "timeUnit": "yearmonth"
        },
        "y": {
          "field": "统计值",
          "type": "quantitative",
          "stack": true
        },
        "color": {
          "datum": "预测值"
        }
      }
    }
  ]
}
  • 第三步:特殊字段适配,如果两个数据集的字段名不一致,可以通过transform配置做别名转换,无需修改原始数据:
    示例:预测数据的数值字段名为预估数值时,在预测数据的layer中添加以下配置即可:
    "transform": [{"calculate": "datum.预估数值", "as": "统计值"}]
    

关键配置说明

  • 两个layer的x轴必须使用相同的timeUnit做月份聚合,保证同月份数据可以被识别为同一维度
  • y轴显式配置stack: true,开启跨层堆叠能力
  • layer的先后顺序对应堆叠的上下层顺序,先声明的数据集会展示在堆叠下层

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:42:04