Vega Charts: необходимо получить значение инверсии масштаба для строковых данных - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть точечная диаграмма, где поля осей x и y выбираются пользователем, данные обрабатываются и складываются в нашем коде, а ячейки, домены и т. Д. Передаются в vega для визуализации.Но моя кисть выбора работает только с числовыми данными, и домены могут быть числовыми, строковыми или датой-временем.

Есть ли способ заставить его работать для строковых данных?Мой код запускается с помощью обратного вызова на приемнике сигналов, который прослушивает сигнал, который выглядит следующим образом: (извините, я не могу предоставить больше спецификации!)

{
  'name': 'sigName',
  'value': [], // 3 x 2 array of arrays [end coords, start data coords, end data coords]
  'on': [
    {
      'events':
      {
        'signal': 'endSig' // provides coords ( xy() ) for the mouseup event after dragging to create brush
      },
      'update': '[ slice(endSig), [invert("xScale", startSig[0]), invert("yScale", startSig[1])], [invert("xScale", endSig[0]), invert("yScale", endSig[1])] ]'
    }
  ]
}

1 Ответ

0 голосов
/ 06 марта 2019

Я не смог найти ответ, поэтому решил просто вернуть начальную и конечную координаты, а затем применить их к своему домену.Высота и ширина представления известны, поэтому я могу сделать что-то подобное для моих строковых доменов в моем обратном вызове:

xValue = (domain.length / this.view.width()) * xCoodinate
output = isStartCoordinate ? domain[Math.ceil(xValue)] : domain[Math.floor(xValue)]
...