我可以根据年数和天数来计算日期吗?

时间:2014-04-29 19:45:06

标签: datetime highcharts

我在HighChart气泡图中有一天的数据。数据看起来像这样:

[2009,265,10930],[2012,27,642],[2012,287,4929],[2010,119,1020]

X值是年份。 Y值是一年中的一天,因此119是4月29日,265是9月22日。我想将Y轴格式化为日期,但我还没有找到一个干净的方式要做到这一点。我可以在Calc中重新格式化数据,但有没有办法直接在HighCharts中计算?

1 个答案:

答案 0 :(得分:0)

在Highcharts中,它不可能,您需要在发送到Highcharts之前预处理数据,如下所示:http://jsfiddle.net/3bQne/1137/

注意:Highcharts需要为线/样条系列分类数据。

var json = [
    [2009, 265, 10930],
    [2012, 27, 642],
    [2012, 287, 4929],
    [2010, 119, 1020]
],
    DAY = 24 * 3600 * 1000,
    jLen = json.length,
    data = [],
    i = 0;

for (; i < jLen; i++) {
    var p = json[i]; // point
    data.push([Date.UTC(p[0], 0, 1) + p[1] * DAY, p[2]])
}

// sort data for Highcharts
data.sort(function(a,b) { return a[0] - b[0]; } );

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container'
    },
    xAxis: {
        type: 'datetime'
    },

    series: [{
        data: data
    }]
});