Как в этом примере сортировать цветовые стеки по определенному полю в Vegalite?

Я пытаюсь понять, как отсортировать столбчатую диаграмму, где цветовой канал используется для кодирования некоторой информации, и в этой диаграмме, приведенной ниже, и хорошо... Я в тупике.

Я пытаюсь отсортировать сложенные цвета по "доходности", поэтому элементы с наибольшей доходностью находятся внизу, но сохраняем группировку на основе "сайта".

Это возможно с вегалитом?

Вот что я мог бы предположить, что справится с сортировкой, основываясь на том, что я прочитал в документации по сортировке, но мне не очень повезло.

"encoding": {
  "color": {
    "type": "nominal",
    "field": "site",
    "sort": {
      "field":"yield",
      "op": "count",
      "order": "ascending"
    }
  },
  "x": {"type": "nominal", "field": "variety"},
  "y": {"type": "quantitative", "aggregate": "sum", "field": "yield"}

}

Что мне нужно сделать, чтобы отсортировать гистограмму таким образом?

Вот диаграмма в редакторе Vega

1 ответ

Вы можете использовать order канал, как описано в https://vega.github.io/vega-lite/docs/stack.html

{
  "$schema": "https://vega.github.io/schema/vega-lite/v3.json",
  "data": {"url": "data/barley.json"},
  "mark": "bar",
  "encoding": {
    "color": {"type": "nominal", "field": "site"},
    "y": {"type": "quantitative", "aggregate": "sum", "field": "yield"},
    "order": {"aggregate": "sum", "field": "yield", "type": "quantitative"}
  }
}

Другие вопросы по тегам