2017-10-05 51 views
0

晚上好(CET),Highcharts - 數據日和提前一天

我收集數據,計算出一天總和,在MySQL中值存儲與時間戳接近一天的24小時(如8月4日,二十三時59分30秒)。

在Highchart柱狀圖中,該值將在8月5日顯示。 (你會看到這個徘徊在酒吧,該值不適合於x軸)。

的工作的例子是在http://jsfiddle.net/bg8yu3ft/

// data 
var data = [ [1501624793000, 3389], [1501883993000, 4045], [1501970397000, 6572], [1502056798000, 5836], [1502143193000, 4736], [1502229588000, 6629], [1502315996000, 3981], [1502402391000, 4424] ] 

// create the chart 
Highcharts.stockChart('container', { 
    series: [{ 
    type: 'column', 
    data: data, 
    }] 
}); 

期待任何建議在中央酒吧它屬於的那一天。

回答

0

假設您的所有數據將採用相同的格式(即接近午夜),您可以使用pointplacement這樣的方式輕鬆完成:fiddle。根據您的時區,您可能需要稍微調整一下這個值。

Highcharts.stockChart('container', { 
    series: [{ 
     type: 'column', 
     data: data, 
     pointPlacement: -1.2 
     }] 
}); 

另一種選擇是移動刻度API

0

您可以將您的x數據更改爲關閉整天,然後在圖表中所有工作都會正常,並且座標軸,點,工具提示將顯示x值爲整天。

如果您需要在工具提示中有精確的一天,那麼您可以將它顯示爲一個信息。演示:http://jsfiddle.net/BlackLabel/7uhdfcj4/

// data 
 
var data = [ 
 
    [1501624793000, 3389], 
 
    [1501883993000, 4045], 
 
    [1501970397000, 6572], 
 
    [1502056798000, 5836], 
 
    [1502143193000, 4736], 
 
    [1502229588000, 6629], 
 
    [1502315996000, 3981], 
 
    [1502402391000, 4424], 
 
]; 
 

 
Highcharts.each(data, function(d, i) { 
 
    var realTime = d[0], 
 
    date = Highcharts.dateFormat('%Y:%m:%d:%H:%M:%S:%L', realTime).split(':'), 
 
    day = (+date[2]) + ((+date[3]) > 19 ? 1 : 0); 
 

 
    data[i].push(realTime); 
 
    data[i][0] = Date.UTC(+date[0], +date[1], day); 
 
}); 
 

 
// create the chart 
 
Highcharts.stockChart('container', { 
 
    series: [{ 
 
    type: 'column', 
 
    data: data, 
 
    keys: ['x', 'y', 'realTime'], 
 
    tooltip: { 
 
     pointFormat: '{point.realTime: %Y.%m.%d %H:%M:%S}' 
 
    } 
 
    }] 
 
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
 
<script src="https://code.highcharts.com/stock/highstock.js"></script> 
 
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script> 
 

 

 
<div id="container" style="height: 400px"></div>