NVD3堆积面积图看起来很奇怪

时间:2014-06-21 11:36:08

标签: javascript d3.js nvd3.js

我尝试通过NVD3使用堆积面积图和一些真实数据,看起来很奇怪: Stacked Area Chart using NVD3

我想数据或数据访问器功能有问题,但我无法弄清楚到底是什么。

  var chart = nv.models.stackedAreaChart()
            .x(function(d) { if (typeof d !== "undefined" && d !== null) return d[0] })
            .y(function(d) { if (typeof d !== "undefined" && d !== null) return d[1] })
            .clipEdge(true)
            .useInteractiveGuideline(true)
            ;

我还注意到,如果"值"它根本不起作用。数组在不同数据对象上的长度不同。是NVD3的限制还是什么?

My fiddle

1 个答案:

答案 0 :(得分:3)

感谢krispo,问题得到了解决。 为了正确显示数据,NVD3要求数据遵循下一条规则:

  1. 系列应具有相同的时间范围(范围)。
  2. 系列长度,即“值”数组长度应该与数据中的所有对象相同。
  3. 为了满足第一个要求,数据应转换如下:

    data = data.map(function(series){
      series.values = series.values.map(function(d,i){
          return [data[2].values[i][0], d[1]]
      })
      return series;
    });
    

    如果数据具有不同的系列长度(第二个要求),则应使用零填充缺失值系列。

    工作示例是here

    结果图如下: enter image description here

相关问题