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

Vega-Lite Facet图独立Y轴配置问题(Y为数组字段)

解决Vega-Lite动态分面独立Y轴问题

要实现每个产品分面仅显示自身版本的独立Y轴,无需硬编码vconcat,可通过以下方式实现:

核心方案

借助Vega-Lite的分面布局+数据变换,为每个产品生成专属版本集合,让每个分面的Y轴自动匹配对应产品的版本范围。

具体步骤

  1. 数据预处理:提取各产品专属版本
    通过聚合和窗口变换,为每条数据标记所属产品的完整版本列表:

    "transform": [
      {
        "aggregate": [{"op": "values", "field": "version", "as": "product_versions"}],
        "groupby": ["product"]
      },
      {
        "window": [{"field": "product_versions", "as": "product_versions"}],
        "groupby": ["product"]
      }
    ]
    
  2. 分面与独立轴配置
    使用facet生成动态分面,在Y轴配置中绑定当前产品的版本集合作为轴定义域:

    "facet": {
      "row": {"field": "product", "header": {"title": "产品"}}
    },
    "spec": {
      "mark": "point",
      "encoding": {
        "y": {
          "field": "version",
          "type": "ordinal",
          "axis": {
            "domain": {"data": "source", "field": "product_versions"},
            "labelAngle": 0
          }
        },
        "x": {"field": "metric", "type": "quantitative"}
      }
    }
    
  3. 关键说明

    • 无需硬编码产品数量,分面会根据数据自动生成
    • product_versions字段存储了对应产品的所有版本,轴的定义域会动态适配当前分面
    • 版本字段设为ordinal类型,保证标签按合理顺序排列

完整示例代码

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {"name": "data"},
  "transform": [
    {
      "aggregate": [{"op": "values", "field": "version", "as": "product_versions"}],
      "groupby": ["product"]
    },
    {
      "window": [{"field": "product_versions", "as": "product_versions"}],
      "groupby": ["product"]
    }
  ],
  "facet": {
    "row": {"field": "product", "header": {"title": "产品"}}
  },
  "spec": {
    "mark": "point",
    "encoding": {
      "y": {
        "field": "version",
        "type": "ordinal",
        "axis": {
          "domain": {"data": "source", "field": "product_versions"},
          "labelAngle": 0
        }
      },
      "x": {"field": "value", "type": "quantitative", "title": "指标值"}
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:01:01