我有一个 Vega 图,我需要仅根据最小、最大和类数的数据输入动态计算数据集并绘制条形图。 步骤应通过(最大 - 最小)/类数计算。
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {
"values": [
{"value": 1, "color":"#fae6c3"},
{"value": 2, "color":"#f0cd91"},
{"value": 3, "color":"#ecb95f"},
{"value": 4, "color":"#e6a532"},
{"value": 5, "color":"#dc8c2d"}
]
},
"mark": "bar",
"encoding": {"x": {"field": "value"}, "color": {"field": "color"}}
}
阅读文档,我发现我可以使用: -数据转换聚合最小值和最大值 -数据转换范围
输入数据是:
"data": {
"values": [
{
"min": 0,
"max": 10,
"numberOfClasses": 5
}
]
},
在此示例中,我向您展示如何获取最小和最大聚合以及如何在范围内进行过滤。我认为过滤器就是您现在所需要的。 如果这对您有帮助,请标记为已回答。 请提供一个真实的例子,以便我们帮助您。
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {
"values": [
{"value": 1, "color": "#fae6c3"},
{"value": 2, "color": "#f0cd91"},
{"value": 3, "color": "#ecb95f"},
{"value": 4, "color": "#e6a532"},
{"value": 5, "color": "#dc8c2d"}
]
},
"transform": [
{"joinaggregate": [{"op": "min", "field": "value", "as": "minVal"}]},
{"joinaggregate": [{"op": "max", "field": "value", "as": "maxVal"}]},
{"filter": "datum.value >= 2 && datum.value <= 4"}
],
"mark": "bar",
"encoding": {"x": {"field": "value"}, "color": {"field": "color"}}
}