Я использовал агрегированное преобразование для вычисления количества элементов в Происхождении и Цилиндре и последующее объединение совокупного преобразования для суммирования количества элементов в Происхождении:
"transform": [{
"aggregate": [{"op": "count", "as": "Count"}],
"groupby": ["Cylinders", "Origin"]
},
{
"joinaggregate": [{"op": "sum", "field": "Count", "as": "OriginCount"}],
"groupby": ["Origin"]
}
]
Я могу затем отобразите Count
на оси x как любую другую переменную данных и отсортируйте кодировку row
по вычисленному OriginCount
:
"encoding": {
"row": {
"field": "Origin", "type": "nominal",
"sort": { "field": "OriginCount", "order": "descending"}
},
"x": {
"field": "Count", "type": "quantitative"
},
...
]
, предоставив мне следующую сгруппированную гистограмму:
См. В Vega Editor Полный текст c для справки:
{
"$schema": "https://vega.github.io/schema/vega-lite/v4.json",
"data": { "url": "https://vega.github.io/editor/data/cars.json"},
"transform": [{
"aggregate": [{"op": "count", "as": "Count"}],
"groupby": ["Cylinders", "Origin"]
},
{
"joinaggregate": [{"op": "sum", "field": "Count", "as": "OriginCount"}],
"groupby": ["Origin"]
}
],
"mark": {
"type": "bar",
"tooltip": true
},
"width": 400,
"encoding": {
"row": {
"field": "Origin", "type": "nominal",
"sort": { "field": "OriginCount", "order": "descending"}
},
"x": {
"field": "Count", "type": "quantitative"
},
"y": {
"field": "Cylinders", "type": "nominal"
}
}
}