Смещение / дрожание: построение точек с категориальной осью X и условными обозначениями 3 групп

Большое спасибо

Кодирование джиттера или смещения еще не реализовано в Vega-Lite; см. https://github.com/vega/vega-lite/issues/4703 для запроса соответствующей функции.


person Sapsi    schedule 16.01.2020    source источник


Ответы (1)


Между тем, лучший способ приблизиться к тому, что вы хотите, - использовать кодировку столбца вместе с кодировкой x, построенной на основе случайно сгенерированного джиттера. Преобразование и кодирование могут выглядеть примерно так:

Оттуда вы можете настроить сетки, отметки, метки и все остальное, чтобы они выглядели так, как вам хотелось бы. Это несовершенно, но в настоящее время это единственный способ добиться такого поведения в грамматике Vega-Lite.

  "transform": [{"calculate": "random()", "as": "jitter"}],
  "encoding": {
    "size": {"value": 65},
    "column": {"field": "cv", "type": "ordinal", "spacing": 0},
    "x": {
      "field": "jitter",
      "type": "quantitative",
      "axis": {"title": null, "labels": false},
      "scale": {"domain": [-1, 2]}
    },
    "y": {"field": "c", "type": "quantitative"},
    "color": {"field": "os", "type": "nominal"}
  }

У меня есть vegalite сюжет, который выглядит как это. Есть 3 операционные системы (см. Легенду), и я рисую рейтер для каждой версии. Я хотел бы «подтолкнуть» / дрожать значения x для 3 ОС для данной версии по оси y, чтобы они не находились в одной строке. В решетке R это было бы «дрожанием». Есть ли способ изменить спецификацию вегалита для этого? Я использую vegawidget от R и сам создаю спецификацию.

Упрощенный пример использования данных можно увидеть здесь:  введите описание изображения здесь

person jakevdp    schedule 16.01.2020