#vega-lite
Вопрос:
Я хотел бы разместить ярлыки категорий в центре моих баров в спецификации vega lite. Я хочу, чтобы это выглядело примерно так:
Ответ №1:
Вы можете использовать stack
преобразование в сочетании с calculate
преобразованием, которое вычисляет среднюю точку между началом и концом для вычисления размещения меток.
Вот пример (или просмотр в редакторе vega lite здесь)
Обратите внимание, что aggregate
преобразование необходимо только потому, что в этом наборе данных имеется одна строка в год.
{
"data": {"url": "data/barley.json"},
"width": 1000,
"transform": [
{
"aggregate": [{
"op": "sum",
"field": "yield",
"as": "yield"
}],
"groupby": ["site", "variety"]
},
{
"stack": "yield",
"groupby": ["variety"],
"sort": [{"field": "site", "order": "descending"}]
},
{
"calculate": "(datum.yield_start datum.yield_end)/2",
"as": "sum_yield_mid"
}
],
"layer": [
{
"mark": {"type": "bar"},
"encoding": {
"x": {"type": "nominal", "field": "variety"},
"y": {"type": "quantitative", "field": "yield_start"},
"y2": {"type": "quantitative", "field": "yield_end"},
"color": {"type": "nominal", "field": "site"}
}
},
{
"mark": {"type": "text", "color": "black"},
"encoding": {
"y": {"field": "sum_yield_mid", "type": "quantitative"},
"text": {"field": "site"},
"x": {"type": "nominal", "field": "variety"}
}
}
]
}