Получите минимальное и максимальное значения из поля данных для использования в масштабе домена - PullRequest
0 голосов
/ 01 мая 2019

У меня есть диаграмма Vega, для которой мне нужно динамически вычислить область оси x. Читая документацию, я вижу, что у меня может быть 2 варианта:

  • Совокупность преобразования данных min и max
  • Степень преобразования данных

Моя совокупная минимальная реализация преобразования данных выглядит следующим образом:

 {
   'name': 'minMaxSales',
   'source': 'monthlySales',
   'transform': { 'type': 'aggregate', 'fields': ['datum.sales_total', 'datum.sales_total'], 'ops': ['min', 'max'], 'as': ['minSales', 'maxSales'] }
 }

Определение шкалы X:

'scales': [
      {
        'name': 'x',
        'type': 'linear',
        'round': false,
        'nice': false,
        'zero': true,
        'domain': {
          'data': 'minMaxSales'
        },
        'range': 'width'
      }
]

Мой код решения экстента преобразования данных выглядит следующим образом:

{
        'name': 'minMaxSales',
        'source': 'monthlySales',
        'transform': { 'type': 'extent', 'field': 'datum.sales_total', 'signal': 'extent' }
}

Тот же код для определения шкалы X.

В обоих случаях я получаю следующую ошибку:

vue.runtime.esm.js:1832 TypeError: data.transform.forEach is not a function
at parseData (data.js:11)
......

1 Ответ

0 голосов
/ 01 мая 2019

transform должен быть массивом объектов ( см. Здесь ).Все, что вам нужно сделать, это добавить квадратные скобки ([]) вокруг { 'type': 'aggregate', 'fields': ['datum.sales_total', 'datum.sales_total'], 'ops': ['min', 'max'], 'as': ['minSales', 'maxSales'] }, и это должно работать правильно.

...