Vega chart: как скрыть 0 значений с графика, но сохранить информацию по осям? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть графики Vega.Когда идут нули, график отображается следующим образом:

enter image description here

Возможно ли удалить круги, если значение равно 0?Я попытался отфильтровать данные по data.filter (el => el.count! == 0), но он также удаляет значения по оси X.

enter image description here

Мне нужно сохранить значения, но удалить только кружки.Также пытался использовать "transform" в спецификации vega, но это вообще ничего не показывает.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

data.filter(el=>el.count!==0) не показывает круги.Поскольку значение оси Y для всех окружностей из первого изображения показывает значение как 0.

Чтобы удалить окружность, которая перекрывается с осью Y, data.filter(el => el.date != first_date_value) удалит первый кружок слева. first_date_value - этоминимальная дата, начинающаяся по оси x.

Чтобы сделать это вегетарианским способом, переместите ось x на то же количество пикселей, что и радиус окружности.Таким образом, шкала оси x будет иметь диапазон [radius_of_circle, width] вместо [0, width]

  "scales": [
    {
      "name": "x",
      "type": "point",
      "range": {"signal": "[15, width]"},
      "domain": {"data": "table", "field": "x"}
    },
...

Это будет начинать ось X со смещением 15 пикселей, как показано на рисунке ниже.Таким образом, даже первый круг не перекрывается по оси Y.

enter image description here

0 голосов
/ 27 сентября 2019

Вы можете использовать правила производства , чтобы установить непрозрачность на 0, когда значение равно нулю, и 1 в противном случае.

...