我正在尝试使用 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 编辑器检查数据时,似乎只读取直方图数据。
此外,这种行为似乎与顺序相关,因为切换 HConcat 块中图表的顺序会改变哪个图表变得混乱:
我在这里遗漏了什么吗?这是 Vegalite 的某种限制吗?
您缺少 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"
}
]
}