我以下列格式从json文件中读取数据:
[
{
"date":"2014-10-27",
"open":23275,
"high":23275,
"low":23013,
"close":23143
},
{
"date":"2014-10-28",
"open":23190,
"high":23571,
"low":23190,
"close":23520
}
]
以下是渲染图表的代码:
<script type="text/javascript">
var myData;
var raw;
$(document).ready(function () {
$.ajax({
type:'get',
url:'hsi2.json',
success:function(data){
raw = jQuery.extend(true, {}, data);
myData = data;
var len = myData.length;
for(var i=0; i<len; i++)
myData[i].date = Date.parse(myData[i].date);
Highcharts.setOptions({
useUTC: false
});
createChart(myData);
}
});
});
function createChart(myData){
$('#chartdiv').highcharts('StockChart', {
rangeSelector: {
inputEnabled: $('#chartdiv').width() > 480,
selected: 1
},
title: {
text: 'HSI Daily'
},
xAxis: {
type: 'datetime',
labels: {
formatter: function () {
return Highcharts.dateFormat('%a %b %Y', this.value);
},
dateTimeLabelFormats: {
day: '%e. %b',
month: '%b \'%y',
year: '%Y'
}
}
},
series: [{
type: 'ohlc',
name: 'HSI',
data: myData,
turboThreshold: 100000
}]
});
};
</script>
X轴仅渲染如下:Thu Jan 1970 00:00每个栏。
日期显示不正确。我尝试了很多方法来修复但没有成功。日期已经采用时间戳格式。 我还尝试检查Highcharts.chart [0] .series [0] .data [i] .date正好是myData [i] .date的时间戳值。
请帮忙。
先谢谢。
答案 0 :(得分:0)
比较示例后我发现了问题。
我没有使用myData [i] .date,而是使用myData [i] .x作为x轴。
$.ajax({
type:'get',
url:'hsi2.json',
success:function(data){
myData = data;
var len = myData.length;
for(var i=0; i<len; i++)
myData[i].x = Date.parse(data[i].date);
Highcharts.setOptions({
useUTC: true
});
createChart(myData);
}
});