Принудительный порядок рисования в диаграмме с областями без накопления

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

Например, посмотрите, что здесь происходит:

введите здесь описание изображения

На рисунке выше я ожидаю, что голубой всегда будет позади темно-синего. Однако это неверно для 3-го, 4-го и 6-го ряда.

Я пробовал несколько комбинаций order, sort и zrank - безуспешно. Есть идеи, как это заставить?

Смотрите пример полная визуализация в редакторе - я не могу заставить Индию, Израиль или Японию отображать дар k-синяя область поверх голубого.


person Felipe Hoffa    schedule 10.03.2020    source источник


Ответы (1)


Я не думаю, что в настоящее время существует способ управлять порядком z диаграмм с областями из спецификации диаграммы, но вы можете управлять им через порядок источника данных: цвета складываются в том порядке, в котором они появляются. Например, здесь в строке 0 первым идет цвет 1, а в строке 1 первым идет цвет 0:

{
  "data": {
    "values": [
      {"x": 0, "y": 2, "row": 0, "color": 1},
      {"x": 1, "y": 1, "row": 0, "color": 1},
      {"x": 0, "y": 1, "row": 0, "color": 0},
      {"x": 1, "y": 2, "row": 0, "color": 0},
      {"x": 0, "y": 2, "row": 1, "color": 0},
      {"x": 1, "y": 1, "row": 1, "color": 0},
      {"x": 0, "y": 1, "row": 1, "color": 1},
      {"x": 1, "y": 2, "row": 1, "color": 1}
    ]
  },
  "mark": "area",
  "encoding": {
    "x": {"field": "x", "type": "temporal"},
    "y": {"field": "y", "type": "quantitative", "stack": false},
    "color": {"field": "color", "type": "ordinal"},
    "row": {"field": "row", "type": "ordinal"}
  },
  "height": 50
}

введите здесь описание изображения

Если вы переставите строки так, чтобы цвет 0 появлялся перед цветом 1 в обоих случаях, порядок стека на диаграмме будет постоянным:

{
  "data": {
    "values": [
      {"x": 0, "y": 1, "row": 0, "color": 0},
      {"x": 1, "y": 2, "row": 0, "color": 0},
      {"x": 0, "y": 2, "row": 0, "color": 1},
      {"x": 1, "y": 1, "row": 0, "color": 1},
      {"x": 0, "y": 2, "row": 1, "color": 0},
      {"x": 1, "y": 1, "row": 1, "color": 0},
      {"x": 0, "y": 1, "row": 1, "color": 1},
      {"x": 1, "y": 2, "row": 1, "color": 1}
    ]
  },
  "mark": "area",
  "encoding": {
    "x": {"field": "x", "type": "temporal"},
    "y": {"field": "y", "type": "quantitative", "stack": false},
    "color": {"field": "color", "type": "ordinal"},
    "row": {"field": "row", "type": "ordinal"}
  },
  "height": 50
}

введите здесь описание изображения

Если вы измените порядок строк входных данных по годам (так, чтобы все записи за 2019 год предшествовали всем записям за 2020 год), порядок стека должен быть одинаковым на каждой панели.

person jakevdp    schedule 10.03.2020