Vega:从源数据中提取两个不同的属性

时间:2019-06-04 12:47:16

标签: data-visualization vega vega-lite

我正在尝试使用Vega可视化来自Elasticsearch的查询结果。

elasticsearch的实际响应将类似于下面第一个数据条目“ es_response”中的响应。我需要将该响应数据分为两个不同的数据,分别命名为histogram_datarule_data

我尝试使用format: { property: "..." }提取每个子数据中的值(如下所示),但是该语言不允许这样做。

我还尝试了使用各种不同的Transforms组合来分离数据,但是收效甚微。

做到这一点的最佳方法是什么?

Link to the original vega-lite source

  "data": [
    {
      "name": "es_response",
      "values": {
        "aggregations": {
          "histogram": [
            {"a": 30, "b": 28},
            {"a": 40, "b": 55},
            {"a": 50, "b": 43},
            {"a": 60, "b": 91},
            {"a": 70, "b": 81},
            {"a": 80, "b": 53},
            {"a": 90, "b": 19},
            {"a": 100, "b": 87},
            {"a": 110, "b": 52}
          ],
          "percentiles": {
            "values": [
              {
                "key": 50,
                "value": 100
              }
            ]
          }
        }
      }
    },
    {
      "name": "histogram_data",
      "source": "es_response",
       
      /*
       * This doesn't work, but I really wish it did
       */
      "format": { "property": "aggregations.histogram"}
    },
    {
      "name": "percentile_data",
      "source": "es_response",
 
      /*
       * Same here
       */
      "format": { "property": "aggregations.percentiles.values"}
    }
  ]

2 个答案:

答案 0 :(得分:0)

这取决于。 :) 您是否要通过网址使用elasticsearch查询?

然后,您可以创建两个命名的数据条目,并使用jsonˋformatˋ选项指定根。

或者,如果希望数据内联,则可以使用ˋdatasetˋ属性。

更多说明可以在这里找到: https://vega.github.io/vega-lite/docs/data.html

答案 1 :(得分:0)

这是Vega-Lite中的一个错误,目前可在https://github.com/vega/vega-lite/issues/5034上进行跟踪。