我有散点图,它没有显示日期的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中将日期作为Date对象,那么它可以工作:
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);
}
答案 0 :(得分:0)
我能够在不使用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);
}