Vega Lite 中的多个数据集

问题描述 投票:0回答:1

我正在尝试使用 Vega Lite 构建数值数据直方图的可视化。现在,我正在使用一个非常简单的模拟数据集(也可用here)来构建可视化原型:

{
    "data": {
    "fill": [
        {"count": 30000, "level": "filled"},
        {"count": 50000, "level": "missing"}
    ],
    "histogram": [
        {"bin_end": 20, "bin_start": 0, "count": 1000},
        {"bin_end": 30, "bin_start": 20, "count": 20000}
    ]
    },
    "metadata": {}
}

上面的数据格式是预先确定的,不幸的是我无法更改它,因为它来自 API。我正在尝试绘制数据的直方图部分以绘制直方图,并绘制数据的填充部分以绘制简单的条形图。像这样的东西:

我知道我可以使用“属性”选项来访问这样的嵌套数据,如 Vega 文档本节中的文档,只要我只绘制其中一个图表,这就有效,如示例所示如下:

Vega 编辑器中的示例 1:仅直方图

Vega 编辑器中的示例 2:仅限条形图

但是,当我尝试将它们放在一起时,它根本不起作用。我得到下面奇怪的图表,其中条形图的数据似乎完全不存在。

链接到 vega 编辑器以获得奇怪的图表

当使用数据查看器中内置的 Vega 编辑器检查数据时,似乎只读取直方图数据。

此外,这种行为似乎与顺序相关,因为切换 HConcat 块中图表的顺序会改变哪个图表变得混乱:

倒排图表

我在这里遗漏了什么吗?这是 Vegalite 的某种限制吗?

json visualization vega-lite
1个回答
2
投票

您缺少 name 属性,因此看起来数据只是被最后检索到的内容覆盖了。干得好。

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.2.0.json",
  "config": {"view": {"continuousHeight": 300, "continuousWidth": 400}},
  "hconcat": [
    {
      "data": {"name": "a",
        "format": {"type": "json", "property": "data.histogram"},
        "url": "https://gist.githubusercontent.com/hemagso/f7b4381be43b34ece4d8aa78c936c7d5/raw/0bae0177b8a2a5d33e23c0d164d4439d248aa9ff/mock,json"
      },
      "encoding": {
        "x": {
          "bin": {"binned": true},
          "field": "bin_start",
          "scale": {"type": "linear"}
        },
        "x2": {"field": "bin_end"},
        "y": {"field": "count", "type": "quantitative"}
      },
      "mark": "bar"
    },
    {
      "data": {"name": "b",
        "format": {"type": "json", "property": "data.fill"},
        "url": "https://gist.githubusercontent.com/hemagso/f7b4381be43b34ece4d8aa78c936c7d5/raw/0bae0177b8a2a5d33e23c0d164d4439d248aa9ff/mock,json"
      },
      "encoding": {
        "color": {"field": "level", "type": "nominal"},
        "x": {"field": "level", "type": "nominal"},
        "y": {"field": "count", "type": "quantitative"}
      },
      "mark": "bar"
    }
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.