ChartJS -JSON数据散点图,与日期发行



我有散点图,它没有显示带有日期的斧头X:

var chart = new Chart(ctx, {
    type: 'line',
    data: {
        datasets: [{
            label: 'label',
            data: [data],
            borderColor: "#000066"
        }],
    },
    options: {
        scales: {
            xAxes: [{
                type: "time",
                display: true,
                scaleLabel: {
                    display: true,
                    labelString: 'Date'
                },
            }]
        }
    }
});

变量数据是JSON格式:

{"x":"2017-06-03T13:23:47.129Z","y":1.306}, 
{"x":"2017-06-03T14:17:24.960Z","y":1.299}, 
{"x":"2017-06-03T14:17:46.565Z","y":1.306},
...

如果我尝试手动添加数据并将日期作为JS中的日期对象,那么它有效:

data: [{ "x": new Date("2017-06-03T14:17:46.565Z"), "y": 1.306 }]

但是我需要在JSON中添加数据。

更新 - 定义数据变量

            for (var j = 0; j < source.length; j++) {                
                x = new Date(source[j].Date);
                y = source[j].value;
                var json = { x: x, y: y };
                data.push(json);
            }

我能够使它起作用,而无需使用data变量周围的括号:jsfiddle

edit1:您如何定义变量?有什么理由将其作为图表创建时间的数组?

edit2:我看到发生了什么。正在创建的json变量是您想要的JSON的字符串表示。Chart.js在定义数据集时不明白这一点。您需要一个实际的JSON对象,例如:

var source = [{Date:"2017-06-03T13:23:47.129Z",value:1.306}, 
{Date:"2017-06-03T14:17:24.960Z",value:1.299}, 
{Date:"2017-06-03T14:17:46.565Z",value:1.306}];
var json = [];
for (var j = 0; j < source.length; j++) {
  var jsonObj = {x: source[j].Date, y: source[j].value};
  json.push(jsonObj);
}

最新更新