dygraphs автоматически устанавливает диапазон значений для диаграммы с ошибками / пользовательскими барами?

У меня есть диаграмма, данные которой загружаются из базы данных SQL, диаграмма МОЖЕТ содержать повторяющиеся значения для одного и того же значения x.

то есть значение X (время) в момент времени 55 секунд может иметь значение температуры: 50, 51, 49, 52, хранящееся в разных строках.

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

Результатом данных csv до построения графика являются [49, 50, 52]... это было протестировано и отлично работает, однако, как только я заработал, теперь все мои графики по оси y начинаются со значения 0 (вместо 49 в этом кейс).

Есть ли способ автоматизировать минимальное значение y, чтобы оно было просто сгенерированным минимальным значением y, то есть 49? как это делается без погрешностей? или это должно быть жестко запрограммировано?

В настоящее время я реализую функцию обратного вызова точки отрисовки, я мог бы включить способ извлечения минимального значения y, чтобы установить там свои ограничения, если еще нет реализованного способа.

//EDIT Добавлен код и картинки....

function createDyGraph(newChart) {
   "use strict";
   var min = 100000000; //value way over possible range of data
   newChart.dyGraph = new Dygraph(
      document.getElementById(newChart.chartGraphID),
      newChart.csvData,
      {
         drawPointCallback: function (g, seriesName, canvasContext, cx, cy,
                                       seriesColor, pointSize, row) {
            var col = g.indexFromSetName(seriesName),
               val = parseInt(g.getValue(row, col).toString().replace(/,/g, ""), 10),
               color = '';
            if (newChart.erroneousData[row]) {
               color = 'red';
            } else {
               color = newChart.colors[col - 1];
            }

        if (val < min) {
           min = val;
        }

        if (color === 'red') {
           canvasContext.beginPath();
           canvasContext.strokeStyle = 'red';
           canvasContext.arc(cx, cy, pointSize, 0, 2 * Math.PI, false);
           canvasContext.stroke();
        } else {
           canvasContext.beginPath();
           canvasContext.strokeStyle = seriesColor;
           canvasContext.arc(cx, cy, pointSize, 0, 2 * Math.PI, false);
           canvasContext.stroke();
        }
     },
     customBars: true,
     colors: newChart.colors,
     animatedZooms: true,
     connectSeparatedPoints: true,
     showLabelsOnHighlight: true,
     ylabel: 'Count / Value',
     xlabel: 'Time (Seconds)',
     drawPoints: true,
     pointSize: 1,
     labels: newChart.labels,
     labelsDiv: document.getElementById('legend' + chartIndex),
     legend: 'always'
  }
 );
   alert(min);
}

График. Почему значение оси min-Y становится равным 0 вместо ~1100???

// РЕДАКТИРОВАТЬ: добавлены данные JSON

[["2014-02-06T16:30:00.000Z",[null,2739,null],[null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

["2014-02-06T16:30:01.000Z",[null,2739,null],[null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

["2014-02-06T16:30:02.000Z",[null,2739,null],[null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

["2014-02-06T16:30:03.000Z",[null,2739,null],[null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

["2014-02-06T16:30:04.000Z",[null,2739,null],[null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

["2014-02-06T16:30:05.000Z",[null,2739,null],[null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

["2014-02-06T16:30:06.000Z",[null,2739,null],[null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

...

["2014-02-06T16:30:59.000Z",[null,2740,null],[null,1787,null],[null,3681.464,null],[null,2392.2569,null]]]


person NutellaAddict    schedule 30.12.2015    source источник
comment
Можете ли вы создать планкер или добавить пример кода?   -  person Will    schedule 30.12.2015
comment
Я добавил код, а также отображаемый график.   -  person NutellaAddict    schedule 30.12.2015
comment
Есть ли шанс, что вы можете использовать console.log(JSON.stringify(newChart.csvData)) так что у нас есть возможность самим закодировать его?   -  person Will    schedule 30.12.2015
comment
Вот, прикрепил формат JSON, в данном случае для двух серий. Нулевые значения означают неповторяющиеся данные для одного и того же значения времени. Но было проверено, что при наличии повторяющихся данных формат: [MIN, MID, MAX]   -  person NutellaAddict    schedule 30.12.2015
comment
Я также должен быть более ясным .... Только половина сериала показывается одновременно. В этом случае ряды из столбца (1 и 2) ИЛИ (3 и 4), поэтому на рисунке показано 2 ряда, а в данных 4 ряда.   -  person NutellaAddict    schedule 30.12.2015
comment
Спасибо за комментарий о CSV, это помогло мне решить проблему.   -  person NutellaAddict    schedule 30.12.2015
comment
Рад, что вы решили свою проблему :)   -  person Will    schedule 30.12.2015


Ответы (1)


Ну, я только что понял... для customBars формат CSV изначально должен быть не [null, Value, null], а скорее [value, value, value].

Следовательно, если вы захотите добавить к этому минимальное или максимальное значение, CSV будет обновлен как [min, value, max]

person NutellaAddict    schedule 30.12.2015