获得d3 Js的错误

时间:2016-12-06 11:36:46

标签: angular d3.js

我在Angular 2应用程序中使用D3 Js创建条形图。

我正在使用 V4.4的D3 并在下面的行中获得以下错误,

。域(d3.range(n))的

 var n = 20, // number of samples
        m = 4; // number of series

    var data = d3.range(m).map(function () { return d3.range(n).map(Math.random); });

    var margin = { top: 20, right: 30, bottom: 30, left: 40 },
        width = 960 - margin.left - margin.right,
        height = 500 - margin.top - margin.bottom;

    var y = d3.scaleLinear()
        .domain([0, 1])
        .range([height, 0]);

    var x0 = d3.scaleBand()
        .domain(d3.range(n))
        .range([0, width], .2);

    var x1 = d3.scaleBand()
        .domain(d3.range(m))
        .range([0, x0.range()]);

    var z = d3.scaleOrdinal(d3.schemeCategory10);

错误,

error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string[]'.
Type 'number' is not assignable to type 'string'.

1 个答案:

答案 0 :(得分:1)

错误告诉你d3.scaleBand().domain想要一个字符串数组作为参数,你给它一个数组数组。只需将您的数字强制转换为以下字符串:

 d3.scaleBand()
   .domain(d3.range(N).map((d) => d+""))
   .range([0, width], .2);