Сортировка строк граненого графика в Vega Lite - PullRequest
0 голосов
/ 14 января 2020

Есть ли волхвы c для сортировки под-диаграмм из кодировки row по количеству элементов в строке?

В этом примере с набором данных cars , я захотелось бы, чтобы США были наверху, потому что в нем больше всего товаров, затем Японии, а затем Европы:

enter image description here

Может быть со свойством items хранилища данных заголовка строки?

1 Ответ

1 голос
/ 03 марта 2020

Я использовал агрегированное преобразование для вычисления количества элементов в Происхождении и Цилиндре и последующее объединение совокупного преобразования для суммирования количества элементов в Происхождении:

  "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"
    },
    ...
]

, предоставив мне следующую сгруппированную гистограмму: Sorted groped bar char

См. В 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"
    }
  }
}
...