首页 > 解决方案 > Vega:累积计数条形图

问题描述

假设我们有以下数据:

"data": [
    {
        "name": "table",
        "values": [
            {
                "key": 1448924400000,
                "doc_count": 1
            },
            {
                "key": 1448924400001,
                "doc_count": 2
            },
            {
                "key": 1448924400002,
                "doc_count": 1
            },
            {
                "key": 1448924400003,
                "doc_count": 3
            }
        ]
    }
]

我想从这些数据中用 VEGA 渲染以下条形图: 在此处输入图像描述

  1. 第一个条形图(>= 1在 x 轴上命名)表示"data"数组中满足以下条件的文档数:"doc_count" >= 1
  2. 第二条(>= 2在 x 轴上命名)是按谓词过滤的文档数"doc_count" >= 2
  3. 第三条(>= 3在 x 轴上命名)是数据数组中的元素数"doc_count" >= 3

我查看了 VEGA 文档及其所有转换,但我仍然无法理解如何构建这种条形图。我将不胜感激任何直接或间接的帮助!

标签: bar-chartreducevegavega-lite

解决方案


通过遍历文档并阅读每一个变换,我终于找到了计算累积和的变换组合。

这是如何完成的

"data": [
    {
        "name": "table",
        "values": [
            {
                "key": 1448924400000,
                "doc_count": 1
            },
            {
                "key": 1448924400001,
                "doc_count": 2
            },
            {
                "key": 1448924400002,
                "doc_count": 1
            },
            {
                "key": 1448924400003,
                "doc_count": 3
            }
        ],
        "transform": [
          {
            "type": "aggregate",
            "groupby": [ "doc_count" ]
          },
          {
            "type": "window",
            "sort": {"field": "doc_count", "order": "descending"},
            "ops": ["sum"],
            "fields": ["count"]
          }
      ]
    }
]

推荐阅读