TypeError: e.values is undefined in nvd3 graph
TypeError: e.values is undefined in nvd3 graph
我通过从外部 JSON 文件 (temp.json) 获取实时数据绘制了一个 nvd3 图表。这是我的代码。但我收到“TypeError: e.values is undefined”错误。
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"
}
]
错误是什么?以及如何获取时间戳与 timestamp3 的关系图?请帮助我。
NVD3 要求数据采用以下格式:
[
{
key: 'my dataset',
values: [...]
}
]
你可以这样做:
const processedData = [{
key: 'my dataset',
values: data
}];
d3.select('#container svg')
.datum(processedData)
.call(chart);
我通过从外部 JSON 文件 (temp.json) 获取实时数据绘制了一个 nvd3 图表。这是我的代码。但我收到“TypeError: e.values is undefined”错误。
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"
}
]
错误是什么?以及如何获取时间戳与 timestamp3 的关系图?请帮助我。
NVD3 要求数据采用以下格式:
[
{
key: 'my dataset',
values: [...]
}
]
你可以这样做:
const processedData = [{
key: 'my dataset',
values: data
}];
d3.select('#container svg')
.datum(processedData)
.call(chart);