查找时 Vega-lite 图表失败,聚合在转换中组合
Vega-lite chart fails when lookup, aggregate combined in transform
为什么这个同时使用查找转换和聚合转换的 Vega-lite 代码无法显示图表?这是一个模拟我在我的项目中尝试做的事情的小例子。
{
"data": {
"values": [
{"group": 1, "person": "Alan"},
{"group": 1, "person": "George"},
{"group": 1, "person": "Fred"},
{"group": 2, "person": "Steve"},
{"group": 2, "person": "Nick"},
{"group": 2, "person": "Will"},
{"group": 2, "person": "Cole"},
{"group": 3, "person": "Rick"},
{"group": 3, "person": "Tom"}
]},
"transform": [
{
"lookup": "person",
"from": {
"data": {
"values": [
{"name": "Alan", "_source": { "age": 10, "category": 5}},
{"name": "Tom", "_source": { "age": 7, "category": 10}}
]},
"key": "name",
"fields": ["_source.age", "_source.category"]
}
},
{"aggregate":
[{"op": "sum", "field": "_source.age", "as": "totalage"}],
"groupby": ["totalage", "_source.category"]}
],
"mark": "bar",
"encoding": {
"x": {"field": "_source.category", "type": "ordinal"},
"y": {"field": "totalage", "type": "quantitative"}
}
}
但是这个使用查找转换但不使用聚合转换的 Vega-lite 代码能否成功显示图表?
{
"data": {
"values": [
{"group": 1, "person": "Alan"},
{"group": 1, "person": "George"},
{"group": 1, "person": "Fred"},
{"group": 2, "person": "Steve"},
{"group": 2, "person": "Nick"},
{"group": 2, "person": "Will"},
{"group": 2, "person": "Cole"},
{"group": 3, "person": "Rick"},
{"group": 3, "person": "Tom"}
]},
"transform": [
{
"lookup": "person",
"from": {
"data": {
"values": [
{"name": "Alan", "_source": { "age": 10, "category": 5}},
{"name": "Tom", "_source": { "age": 7, "category": 10}}
]},
"key": "name",
"fields": ["_source.age", "_source.category"]
}
}
],
"mark": "bar",
"encoding": {
"x": {"field": "_source.category", "type": "ordinal"},
"y": {"field": "_source.age", "aggregate": "sum", "type": "quantitative"}
}
}
groupby 中的复合字段未正确转义(我相信这是 vega-lite 中的错误)。作为解决方法,您可以手动转义它们,即 replace
"groupby": ["_source.category"]
与
"groupby": ["_source\.category"]
我已经在 vega/vega-lite#6606
报告了这个错误
为什么这个同时使用查找转换和聚合转换的 Vega-lite 代码无法显示图表?这是一个模拟我在我的项目中尝试做的事情的小例子。
{
"data": {
"values": [
{"group": 1, "person": "Alan"},
{"group": 1, "person": "George"},
{"group": 1, "person": "Fred"},
{"group": 2, "person": "Steve"},
{"group": 2, "person": "Nick"},
{"group": 2, "person": "Will"},
{"group": 2, "person": "Cole"},
{"group": 3, "person": "Rick"},
{"group": 3, "person": "Tom"}
]},
"transform": [
{
"lookup": "person",
"from": {
"data": {
"values": [
{"name": "Alan", "_source": { "age": 10, "category": 5}},
{"name": "Tom", "_source": { "age": 7, "category": 10}}
]},
"key": "name",
"fields": ["_source.age", "_source.category"]
}
},
{"aggregate":
[{"op": "sum", "field": "_source.age", "as": "totalage"}],
"groupby": ["totalage", "_source.category"]}
],
"mark": "bar",
"encoding": {
"x": {"field": "_source.category", "type": "ordinal"},
"y": {"field": "totalage", "type": "quantitative"}
}
}
但是这个使用查找转换但不使用聚合转换的 Vega-lite 代码能否成功显示图表?
{
"data": {
"values": [
{"group": 1, "person": "Alan"},
{"group": 1, "person": "George"},
{"group": 1, "person": "Fred"},
{"group": 2, "person": "Steve"},
{"group": 2, "person": "Nick"},
{"group": 2, "person": "Will"},
{"group": 2, "person": "Cole"},
{"group": 3, "person": "Rick"},
{"group": 3, "person": "Tom"}
]},
"transform": [
{
"lookup": "person",
"from": {
"data": {
"values": [
{"name": "Alan", "_source": { "age": 10, "category": 5}},
{"name": "Tom", "_source": { "age": 7, "category": 10}}
]},
"key": "name",
"fields": ["_source.age", "_source.category"]
}
}
],
"mark": "bar",
"encoding": {
"x": {"field": "_source.category", "type": "ordinal"},
"y": {"field": "_source.age", "aggregate": "sum", "type": "quantitative"}
}
}
groupby 中的复合字段未正确转义(我相信这是 vega-lite 中的错误)。作为解决方法,您可以手动转义它们,即 replace
"groupby": ["_source.category"]
与
"groupby": ["_source\.category"]
我已经在 vega/vega-lite#6606
报告了这个错误