我通过从外部JSON文件(temp.json)获取实时数据绘制了一个nvd3图。这是我的代码。但我得到" TypeError:e.values未定义"错误。
d3.json("temp.json", function(data) {
data.forEach(function(d) {
d.timestamp = +d.timestamp;
d.timestamp3 = +d.timestamp3;
});
nv.addGraph(function(){
var chart = nv.models.cumulativeLineChart()
.margin({left: 100})
.x(function(d){return d.timestamp})
.y(function(d){return d.timestamp3})
.color(d3.scale.category10().range())
.useInteractiveGuideline(true)
chart.xAxis
.axisLabel('Time in ns')
.tickFormat(d3.format(""));
chart.yAxis
.axisLabel('Timestamp in ns')
.tickFormat(d3.format(""));
d3.select('#container svg')
.datum(data)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
});
我在temp.json中的数据:
[{
"temperSensorData": "26.183021749996204",
"temperSensorUnit": "celsius",
"timestamp": "1370718629809",
"timestamp2": "1370718629900",
"timestamp3": "1370718629945"
},
{
"temperSensorData": "26.183021749996204",
"temperSensorUnit": "celsius",
"timestamp": "1370718630000",
"timestamp2": "1370718631000",
"timestamp3": "1370718631500"
},
{
"temperSensorData": "26.183021749996204",
"temperSensorUnit": "celsius",
"timestamp": "1370718632000",
"timestamp2": "1370718632500",
"timestamp3": "1370718632600"
},
{
"temperSensorData": "26.183021749996204",
"temperSensorUnit": "celsius",
"timestamp": "1370718633000",
"timestamp2": "1370718633500",
"timestamp3": "1370718634000"
},
{
"temperSensorData": "26.183021749996204",
"temperSensorUnit": "celsius",
"timestamp": "1370718635000",
"timestamp2": "1370718635500",
"timestamp3": "1370718636000"
}
]
错误是什么?以及如何获取时间戳与时间戳3的关系图?请帮帮我。
答案 0 :(得分:1)
NVD3期望数据采用以下格式:
[
{
key: 'my dataset',
values: [...]
}
]
你可以这样做:
const processedData = [{
key: 'my dataset',
values: data
}];
d3.select('#container svg')
.datum(processedData)
.call(chart);