Vega Lite независимое масштабирование между строками и столбцами - PullRequest
0 голосов
/ 28 октября 2019

У меня есть этот график , и в настоящее время, когда вы приближаетесь к одному из графиков, он также увеличивает все остальные. Теперь я не против этого для оси x, где все данные имеют похожие / связанные значения. Однако для оси y, где шкалы изменяются даже в пределах одной и той же «серии», увеличение одной из «переменных» по существу скрывает другие «переменные» той же «серии». Итак, я ищу одно из следующего в порядке моих предпочтений:

  1. Способ обеспечить независимое масштабирование по оси Y между всеми графиками с помощью Vega Lite.
  2. Способ сделать масштабирование по осям X и Y независимым от всех графиков, используя Vega Lite.
  3. Способ получить # 1 выше, но используя Vega.
  4. Способ получить #2 выше, но с использованием Vega.

1 Ответ

0 голосов
/ 28 октября 2019

Для составных диаграмм один из способов сделать это - применить пользовательские привязанные выделения к каждой диаграмме, поделив имена выборок между диаграммами, для которых требуется общее масштабирование. Простой пример ( vega editor ):

{
  "data": {"url": "https://vega.github.io/vega-datasets/data/cars.json"},
  "hconcat": [
    {
      "mark": "point",
      "encoding": {
        "x": {"type": "quantitative", "field": "Horsepower"},
        "y": {"type": "quantitative", "field": "Acceleration"}
      },
      "selection": {
        "zoom_x": {"type": "interval", "bind": "scales", "encodings": ["x"]},
        "zoom_y1": {"type": "interval", "bind": "scales", "encodings": ["y"]}
      }
    },
    {
      "mark": "point",
      "encoding": {
        "x": {"type": "quantitative", "field": "Horsepower"},
        "y": {"type": "quantitative", "field": "Weight_in_lbs"}
      },
      "selection": {
        "zoom_x": {"type": "interval", "bind": "scales", "encodings": ["x"]},
        "zoom_y1": {"type": "interval", "bind": "scales", "encodings": ["y"]}
      }
    }
  ]
}

Обратите внимание, что выбор zoom_x распределяется между двумя диаграммами, в то время как каждая диаграмма имеет свою собственную версию zoom_y. В результате масштабирование по оси X используется совместно для диаграмм, а масштабирование по оси Y не зависит.

Аналогичная стратегия работает для вашей ситуации # 2 (добавьте выделенное выделение по-разному для каждой подкарты).

Чтобы воспроизвести это в Vega, вы можете начать, щелкнув вкладку «Скомпилированная Vega» в редакторе Vega для диаграмм Vega-Lite: она покажет вам, как эти подходы реализованы в Vega.

...