我正在尝试显示一段时间内堆积的总和条形图。数据看起来像这样:
[
{
"date": 12345,
"sumA": 100,
"sumB": 150
},
...
]
我正在将x轴编码为“日期”字段。我需要将日期为12345的条形图堆叠起来,其中一部分的高度为100,而另一种颜色的高度为150。
Vega Lite seems to expect the raw data,但这太慢了。我在服务器端进行此汇总以节省时间。我可以像上面的示例一样用勺子喂Vega Lite骨料吗?
答案 0 :(得分:1)
您可以使用fold transform将两列折叠为一列,然后由通道编码处理其余部分。例如(vega editor):
{
"data": {
"values": [
{"date": 1, "sumA": 100, "sumB": 150},
{"date": 2, "sumA": 200, "sumB": 50},
{"date": 3, "sumA": 80, "sumB": 120},
{"date": 4, "sumA": 120, "sumB": 30},
{"date": 5, "sumA": 150, "sumB": 110}
]
},
"transform": [
{"fold": ["sumA", "sumB"], "as": ["column", "value"]}
],
"mark": {"type": "bar"},
"encoding": {
"x": {"type": "ordinal", "field": "date"},
"y": {"type": "quantitative", "field": "value"},
"color": {"type": "nominal", "field": "column"}
}
}