Как использовать ноль = false в vega-lite при использовании цветовой кодировки?

#vega-lite

#vega-lite

Вопрос:

Я пытаюсь выяснить, как не начинать мою ось y с нуля? Для меня это работает в целом, но если я добавлю цветовую кодировку (см. Ниже), она больше не работает, и вместо этого я вижу ноль.

     {
      "data": {"name": "d"},
      "mark": {"type": "bar"},
      "encoding": {
            "color": {"type": "nominal", "field": "group"},
            "x":     {"type": "nominal", "field": "model"},
            "y": {
              "type": "quantitative",
              "field": "inf_f1",
              "scale": {"zero": false}
            }
          },
      "$schema": "https://vega.github.io/schema/vega-lite/v4.0.2.json",
      "datasets": {
        "d": [
          {
            "model": "lr-bow",
            "inf_f1": 0.7991841662090597,
            "group" : "A"
          },
          {
            "model": "fcn-bow",
            "inf_f1": 0.8220151833558302,
            "group" : "B"
          }
        ]
      }
    }

  

Так не должно выглядеть

Ответ №1:

Причина, по которой шкала включает ноль, заключается в том, что столбики по умолчанию сложены, и каждый столбик имеет неявную полосу нулевой высоты для группы, которая не отображается, но влияет на автоматически выбранные пределы оси. Вы можете решить эту проблему, установив stack значение "none" в кодировке y (просмотр в редакторе):

 {
  "data": {"name": "d"},
  "mark": {"type": "bar"},
  "encoding": {
    "color": {"type": "nominal", "field": "group"},
    "x": {"type": "nominal", "field": "model"},
    "y": {
      "type": "quantitative",
      "field": "inf_f1",
      "stack": "none",
      "scale": {"zero": false}
    }
  },
  "datasets": {
    "d": [
      {"model": "lr-bow", "inf_f1": 0.7991841662090597, "group": "A"},
      {"model": "fcn-bow", "inf_f1": 0.8220151833558302, "group": "B"}
    ]
  }
}
  

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

Комментарии:

1. Спасибо, Джейк! Кроме того, для моего будущего самостоятельного поиска в Google: в стеке Altair = Нет.