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

如何在Vega/Vega-Lite中通过transform选取数据集前n行?

实现取数据集前N行的替代方案

Vega/Vega-Lite 没有内置head转换,但可以通过window+filter的组合转换实现完全一致的效果,适配你当前场景的完整配置如下:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "url": "heights.csv"
  },
  "transform": [
    {
      "window": [{"op": "row_number", "as": "row_num"}]
    },
    {
      "filter": "datum.row_num <= 3"
    }
  ],
  "mark": "bar",
  "encoding": {
    "x": {"field": "Person", "type": "nominal"},
    "y": {"field": "Height", "type": "quantitative"}
  }
}

实现逻辑

  • 第一步window转换调用row_number算子,按照数据源的原始输入顺序为每一行生成从1开始递增的行号,存储在新增的row_num字段中
  • 第二步filter转换筛选行号小于等于3的记录,即可拿到排序后的前3行数据

可选优化

如果担心后续数据源返回的排序规则可能发生变动,可以在window转换中显式指定按身高降序排序,确保永远取到身高最高的3人,修改后的transform配置如下:

"transform": [
  {
    "window": [{"op": "row_number", "as": "row_num"}],
    "sort": [{"field": "Height", "order": "descending"}]
  },
  {
    "filter": "datum.row_num <= 3"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:36:09