dygraphs会自动设置包含错误/自定义栏的图表的值范围吗?

时间:2015-12-30 03:02:11

标签: javascript dygraphs

我有一个从SQL数据库加载数据的图表,图表可能包含相同x值的重复值。

即。时间55秒的X(时间)值可以具有温度值:50,51,49,52,存储在不同的行上。

我实现了错误栏,以便向用户表示这些差异,因为同一系列的每个x点的多个y值是不可能的。

绘图之前的结果csv数据是[49,50,52] ......这已经过测试并且效果很好,但是一旦我完成这项工作,现在我的所有图形y轴都从0开始(而不是在这种情况下49。)

有没有办法将最小y值自动化为简单生成的最小y值,即49?因为没有错误栏就完成了?或者这是否必须硬编码?

我目前正在实现一个绘制点回调函数,如果没有实现的话,我可以采用一种方法来提取最小y值来设置我的限制。

//编辑添加了代码和图片......

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);
}

Graph - Why is the min-Y axis value going to 0 instead of ~1100???

//编辑:添加了JSON数据

[[ “2014-02-06T16:30:00.000Z”,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空]] ,

[ “2014-02-06T16:30:01.000Z”,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空],

[ “2014-02-06T16:30:02.000Z”,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空],

[ “2014-02-06T16:30:03.000Z”,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空],

[ “2014-02-06T16:30:04.000Z”,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空],

[ “2014-02-06T16:30:05.000Z”,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空],

[ “2014-02-06T16:30:06.000Z”,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空],

...

[ “2014-02-06T16:30:59.000Z”,[空,2740,空],[空,1787,空],[空,3681.464,空],[空,2392.2569,空]]]

1 个答案:

答案 0 :(得分:0)

我刚刚想出来......对于customBars,CSV格式最初不应该是[null,Value,null],而是[value,value,value]。

因此,如果您想要添加最小值或最大值,CSV将更新为 [min,value,max]