Vega-lite ширина полосы по умолчанию странная - PullRequest
1 голос
/ 13 марта 2020

Я вижу следующую странную диаграмму. Я понимаю, что могу явно изменить padding et c., Но стандартная компоновка vega-lite обычно довольно хороша. Я запутался в том, что я делаю, что приводит к этому ненормальному поведению. Спасибо! Вот код в редакторе vega-lite

e

Я понимаю, что я также могу изменить x * type на ordinal, чтобы сделать дизайн лучше, хотя я не уверен, что до сих пор понимаю, почему я вижу разницу. Мне нужно, чтобы тип был количественным, поэтому я получаю ограничение min / max bru sh, в отличие от набора.

Кроме того, я даже не знаю, как вручную установить ширину полосы после прочтения документации здесь https://vega.github.io/vega-lite/docs/scale.html. Если бы у кого-то был рабочий пример, это было бы здорово.

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Как упомянуто @marcprux, есть предустановленная поддержка, поэтому вам не нужно повторять здесь преобразование bin. Однако в настоящее время для предварительно встроенной поддержки требуются bin_start и bin_end.

. Теперь вы можете изменить spe c, чтобы получить новое поле bin_end и использовать его с x2.

{
  "data": ...
  "transform": [{
    "calculate": "datum.ShareWomen_bin+0.1",
    "as": "ShareWomen_bin_end"
  }],
  "mark": "bar",
  "encoding": {
    "x": {"bin": {"binned": true, "step": 0.1}, "field": "ShareWomen_bin", "type": "quantitative", "title": "ShareWomen_bin"},
    "x2": {"field": "ShareWomen_bin_end"},
    "y": {"field": "count", "type": "quantitative"}
  }
}

вот так spe c.

enter image description here

Я вижу, что нам не нужно извлекать bin_end и, следовательно, создали проблему для отслеживания этого запроса: https://github.com/vega/vega-lite/issues/6086.

Кстати, количественная шкала влияет только на положение бара.

Чтобы установить размер бара напрямую, Вы можете использовать свойство size в определении метки:

mark: {type: "bar", size: 5}
0 голосов
/ 13 марта 2020

Поскольку вы объявляете «x» как количественное поле, нет предположения, что точки вдоль оси распределены равномерно. Например, вы можете добавить некоторые точки данных между другими:

      {"ShareWomen_bin": 0.83, "count": 40, "is_overview": true},
      {"ShareWomen_bin": 0.87, "count": 70, "is_overview": true},

, и вы увидите, что они отображаются между другими барами:

enter image description here

Как вы упоминаете, вы можете указать, что столбцы должны быть закодированы как порядковые значения. Другое решение состоит в том, чтобы оставить его количественным, но указать, что он является биннингом, и в этом случае столбцы также будут отображаться, как если бы они были порядковыми:

    "x": {"field": "ShareWomen_bin", "type": "quantitative", "bin": true},

enter image description here

Поскольку кажется, что ваши данные уже связаны, вам следует прочитать о том, как vega-lite поддерживает предварительно созданные данные: https://vega.github.io/vega-lite/docs/bin.html#binned

...