0

我有 15 分钟的间隔日期数据要绘制。就我而言,日期可能不一致。

示例格式:var row = ["2012-02-29", "00:15", "0"]

我从 Java 类中获取用于绘图的数组。

我尝试了一些选项,例如:

    var tempVal = new Array();

    for(var i=0;i<row.length;i++){

        var record = row[i].split(",");
        tempVal[i]=Date.UTC(record[0].substring(0,4), record[0].substring(5,7),   record[0].substring(8,10), record[1].substring(1,3), record[1].substring(4,7)), record[2];

}

在 Highcharts 中:系列:[{ 数据:tempVal }]

但我无法在 Highcharts 上绘制它。

任何指导都会有所帮助。

4

2 回答 2

1

要在 HighCharts 上绘制日期时间,您需要日期时间值和 ay 值。它应该如下所示:

data: [
                [Date.UTC(2010, 0, 1), 29.9], 
                [Date.UTC(2010, 2, 1), 71.5], 
                [Date.UTC(2010, 3, 1), 106.4]
            ]

或者您可以替换Date.UTC(2010, 0, 1)为等效的 javascript 时间值。

Date.UTC()可以接受几种不同的格式。见这里

因此,您需要做的是将您的日期值和时间值合并为一个时间值。

在查看您的示例代码后进行编辑,您有几个问题。一方面,您的数据数组tempVal被声明为错误的。它应该是:

var tempVal = [];

您还应该使用array.push将数据放入tempVal数组中。

另一个问题是您的时间序列似乎没有按时间顺序排列 - 当我正确设置了您的序列时,我得到的区域“线”来回移动。

话虽如此,我想出的只是您需要修复数据数组声明以及如何将数据分配给该数组。这是一个非常简单的方法,当然可以做得更快,但我喜欢冗长:

for (var i = 0; i < row.length; i++) {
    var record = row[i].split(",");
    var xVal = Date.UTC(parseInt(record[0].substring(0, 4)), parseInt(record[0].substring(5, 7)), parseInt(record[0].substring(8, 10)), parseInt(record[1].substring(1, 3)), parseInt(record[1].substring(4, 7)));
    var yVal = Math.random() * 10;
    var x = [xVal, yVal];
    tempVal.push(x);
}

请参阅此处更新的示例。请注意,线条来回走动 - 正如我所说,这与您的时间序列不按时间顺序有关。另请注意,月份是从 0 开始的,因此 Jan = 0 和 Dec = 11。

于 2013-07-19T15:15:29.063 回答
0

你在控制台有错误吗?如果您发布了代码,则应该有一个。

关于 Highcharts - 要求值应该是数字,而不是字符串,例如:record[2]应该在之前解析,例如:parseFloat(record[2])

于 2013-07-22T10:57:46.937 回答