2015-12-30 39 views
1

我有一個圖表是誰從SQL數據庫中加載數據,圖表可能包含相同x值的重複值。dygraphs自動設置錯誤/自定義欄的圖表值範圍?

即X(時間)在時間55秒可以具有的溫度值的值:50,51,49,52,存儲在不同的行。

我實現了errorbars爲了表示這些差異給用戶,因爲每個X點的多個y值是不可能的同一系列。

繪製之前的結果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); 
} 

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

//編輯:添加JSON數據

[[「2014-02-06T16:30:00.000 [「null,1786,null],[null,3680.1204,null],[null,2390.9182,null]],

[」2014-02-06T16:30: 01.000Z」,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,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」,[空,2739,空],[空,1786,空],[空,3680.1204,空],[空,2390.9182,空],

...

[ 「2014-02-06T16:30:59.000Z」,[空,2740空],[空,1787年,空],[空,3681.464,空],[空,2392.2569,空]]]

+1

你能創建一個plunker或添加一些示例代碼? – Will

+0

我添加了代碼以及顯示的圖形。 – NutellaAddict

+1

任何機會,你可以console.log(JSON.stringify(newChart.csvData)),所以我們有實際編碼它十二? – Will

回答

0

嗯,我只是想通了......對於customBars CSV格式不應該是[空,價值,空起初,而是[價值,價值,價值。

因此,你應該要最小或最大補充,該CSV將被更新, [分鐘,值,最大值]