TypeError:在nvd3图中未定义e.values

时间:2017-04-26 16:37:40

标签: json d3.js nvd3.js

我通过从外部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的关系图?请帮帮我。

1 个答案:

答案 0 :(得分:1)

NVD3期望数据采用以下格式:

[
  {
     key: 'my dataset',
     values: [...]
  }
]

你可以这样做:

const processedData = [{
   key: 'my dataset',
   values: data
}];

d3.select('#container svg')
    .datum(processedData)
    .call(chart);